MySQL数据的binlog处理方法 日志定时清理
at 4年前 ca MySQL pv 1271 by touch
一、没有主从同步的情况下清理日志
mysql -uroot -p123456 -e 'PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ),INTERVAL 5 DAY)';
#mysql 定时清理5天前的binlog
mysql -u root -p #进入mysql 控制台 mysql >show binary logs; 查看多少binlog日志,占用多少空间。
reset master; #重置binlog
二、MySQL主从同步下安全清理binlog日志
mysql -u root -p #进入从服务器mysql控制台
show slave status\G; #检查从服务器正在读取哪个日志,有多个从服务器,选择时间最早的一个做为目标日志。
进入主服务器mysql控制台
show master log; #获得主服务器上的一系列日志
PURGE MASTER LOGS TO 'binlog.000058'; #删除binlog.000005之前的,不包括binlog.000058 PURGE MASTER LOGS BEFORE '2016-06-22 13:00:00'; #清除2016-06-22 13:00:00前binlog日志 PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY); #清除3天前binlog日志
三、设置自动清理MySQL binlog日志
vi /etc/my.cnf #编辑配置 expire_logs_days = 15 #自动删除15天前的日志。默认值为0,表示从不删除。 log-bin=mysql-bin #注释掉之后,会关闭binlog日志 binlog_format=row #注释掉之后,会关闭binlog日志
或者
mysql> set global expire_logs_days = 5; 把binlog的过期时间设置为5天; mysql> flush logs; 刷一下log使上面的设置生效,否则不生效。
版权声明
本文仅代表作者观点,不代表码农殇立场。
本文系作者授权码农殇发表,未经许可,不得转载。
已有0条评论