dongjun111111 / blog

BLOG
36 stars 5 forks source link

MySQL调整或删除binlog #50

Open dongjun111111 opened 8 years ago

dongjun111111 commented 8 years ago

MySQL调整或删除binlog

mysql基于binlog进行复制,一般用于复制的配置类似这样:

####replaction########
server-id=17
#log-slave-updates
log-bin=mysql-bin
log-bin-index=mysql-bin.index
binlog_cache_size=4M
#binlog-format=MIXED
expire_logs_days=10
max_binlog_size=1024M
sync_binlog=0

某次测试服上,开启了binlog,造成大量的binlog日志写满磁盘(容器10GB),mysql发生死锁。 由于需要binlog调试sql语句不能关闭binlog,所以先减少binlog保存日期比如2天,并且删除之前保留的binlog。 binlog保留时间由10天降低到2天:

mysql> show global variables like 'expire_logs_days';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| expire_logs_days | 10    |
+------------------+-------+
1 row in set (0.00 sec)

mysql> set global expire_logs_days=2;

删除2015-11-29之前的binlog:

mysql> PURGE BINARY LOGS BEFORE '2015-11-29 00:00:00';

参考

http://www.xiaomastack.com/2015/12/01/mysql-delete-binlog/