MySQL二进制 日志binary log清理
清理原理
删除列于在指定的日志或日期之前的日志索引中的所有二进制日志,日志记录会在日志索引文件中的清单中被清理,这样被给定的日志成为第一个。
1.1.1、删除指定日志之前的日志,mysql-bin.003002本身这个文件不删除,且作为一个新的日志开始 mysql > PURGE BINARY LOGS TO ‘mysql-bin.033662’; 然后查看mysql-bin.index是否一并清理记录 1.1.2、删除 2021-03-31 23:59:59 时间点之前的日志 mysql > PURGE BINARY LOGS BEFORE ‘2021-03-31 23:59:59’;
删除条件
2.1.1、在从数据库上,使用show slave status 来检查正在读取的日志。 2.1.2、在主数据库上,show master logs 获取主的日志。
参数调整,刷新日志后可以看到90天前的日志已经被清理
设置过期天数为90天 mysql> set global expire_logs_days = 90; Query OK, 0 rows affected (0.05 sec) mysql> show variables like 'expire_logs_days'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | expire_logs_days | 90 | +------------------+-------+ Flush logs;
相关文件以及含义
mysql-bin.index mysql二进制文件的记录 mysql-bin.xxxxxx mysql中除去select其他的所有操作日志 mysqlbinlog 执行二进制文件
MHA测试环境图示: