您的位置:首页 > 数据库 > MySQL

自动清理过期mysql从库 log_bin日志

2018-03-01 16:50 411 查看
背景:

在mysql从库的配置文件中,设置日志

relay-log = /data/mysql/mysql-relay-bin.log
log_bin = /data/mysql/mysql-bin.log


一段时间后发现日志量比较大,占据大量磁盘空间。从库同步的日志都保留未清除。

但是

处理:

命令行进入mysql, 输入命令

mysql>show variables like 'expire%';


返回结果: expire_logs_days = 0

处理方式

1 自动处理

1.1 使用命令设置日志过期时间

1.2 在配置文件中设置日志过期时间

2 手动处理

自动处理

对于解决方式1:

在mysql命令行中依次输入一下命令

mysql> set global expire_logs_days=10;


设置过期时间

mysql> flush logs


生效,处理过期日志

对于解决方式2:

修改 /etc/my.conf

expire_logs_days=10
加入
[mysqld]
下面,

然后重启mysql:

/usr/sbin/mysqld restart


手动处理

2.1 如果没有主从复制,使用命令进行处理(非本例情况)

主库

mysql> reset master


或者是从库

mysql> reset slave


2.2 purge

mysql> purge binary logs to 'bg-bin.000112';
mysql> purge master logs before '2018-02-28 13:00:00'; //清除2018-02-28 13:00:00前的日志
mysql> purge master logs before date_sub(now(), interval 3 day); //清除3天前的bin日志


详细介绍见官网,注意其中的使用说明

https://dev.mysql.com/doc/refman/5.7/en/purge-binary-logs.html

参考文章

http://blog.csdn.net/yabingshi_tech/article/details/49763235

https://www.cnblogs.com/zhanmeiliang/p/5951478.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: