mysql binlog相关

 

1、清除的binlog
 
删除所有binlog日志,新日志编号从头开始
RESET MASTER;
 
删除mysql-bin.XXXX之前所有日志
PURGE MASTER LOGS TO 'mysql-bin.XXXX';
 
删除2019-10-25 12:00:00之前产生的所有日志
PURGE MASTER LOGS BEFORE '2019-10-25 12:00:00';
 
清除3天前的 binlog
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);
 
2、修改保存几天的binlog
 
现在的配置时保存15天的
mysql> show variables like 'expire_logs_days';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| expire_logs_days | 15 |
+------------------+-------+
 
设置保存3天
mysql> set global expire_logs_days=3;
 
mysql> show variables like 'expire_logs_days';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| expire_logs_days | 3 |
+------------------+-------+
 
设置之后不会立即清除,触发条件是:
 
binlog大小超过max_binlog_size
手动执行flush logs
重新启动时(MySQL将会new一个新文件用于记录binlog)
 
修改配置文件
expire_logs_days=3
 
3、自动删除binlog
delete_logs.sh
#!/bin/bash
mysql -udevroot -h 127.0.0.1 -pdevroot -e 'PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ),INTERVAL 1 DAY)';
mysql -udevroot -h 127.0.0.1 -pdevroot -e 'reset master';
 
然后把脚本写入定时任务中
posted @ 2019-11-12 18:00  断臂人123  阅读(154)  评论(0编辑  收藏  举报