MySQL清理二进制文件

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测试环境图示:

MySQL清理二进制文件

 

 MySQL清理二进制文件

 

 

  

 

上一篇:启动nginx报错 [error] open() “/usr/local/nginx/logs/nginx.pid“ failed (2: No such file or directory)


下一篇:CentOS-yum安装Docker环境(含:常用命令)