清理binlog日志

清理binlog日志

   张吉吉     2020年6月19日 08:22     364    

(1)手动清理binlog日志

首先查看使用得binlog日志,一定注意不能删除这个日志。

1.png

通过命令删除日志,有两种删除日志的标准。

通过时间标准来删除日志

purge master logs before '2020-06-19 10:20:00';

这条命令的意思就是删除2020-06-19 10:20之前的日志。

通过文件名删除日志

purge master logs to'mysql-bin.000002';

这条命令就是删除文件名为mysql-bin.000002的日志。

 

(2)自动删除日志

查看保留多少天的日志,0的话就是永远不过期,不会自动删除日志。

2.png

set global expire_logs_days = 7;

<1>上边的值在mysql8.0之前是适用的。但是到了mysql8.0之后就出现了另一个参数,binlog_expire_logs_seconds。这个参数的单位是秒,而之前的参数是以天为单位。

<2>在8.0中binlog_expire_logs_seconds参数的默认值是2592000秒,也就是30天。

如果你设置的时候,就会提示说expire_logs_days参数是弃用的。但是这两个参数是并存的。

3.png

<3>如果在mysql的配置文件中没有配置binlog_expire_logs_seconds和expire_logs_days的参数,默认的就是使用binlog_expire_logs_seconds的值。

如果一定要用expire_logs_days参数,就要将binlog_expire_logs_seconds=0;

如下图:

4.png

<4>若要关闭自动清除binlog文件的功能,则需要显示指定binlog_expire_logs_seconds=0 并且不设置expire_logs_days的值。

 

(3)删除所有binlog日志

reset master:将删除日志索引文件中记录的所有binlog文件,创建一个新的日志文件,起始值从000001开始。不要轻易使用该命令,这个命令通常仅仅用于第一次用于搭建主从关系的时的主库。

reset slave:清除master.info文件、relay-log.info文件,以及所有的relay log文件,并重新启用一个新的relaylog文件使用reset slave之前必须使用stop slave 命令将复制进程停止。

 


其他文章