mysql限制binlog天数及数量_mysql主从binlog日志自动清理及手动删除

本文介绍了在MySQL主从环境中如何手动和自动清理binlog日志,以避免磁盘空间占用过大。手动清理包括使用`PURGE MASTER LOGS`命令,并在确保从服务器已同步的情况下安全执行。同时,通过设置`expire_logs_days`参数可实现自动清理,建议根据服务器繁忙程度和日志增长速度设定合适的时间周期。
摘要由CSDN通过智能技术生成

问题反馈:

mysql主从,在没有设置自动清理binlog日志的情况下,会产生庞大的同步日志文件,占用磁盘空间。

1afc14a419d80a6c3268d3a9f2faefab.png

7d20b5b47cda9a5e61468033ffc08658.png

1 手动清理binlog日志,purge master logs

1.1 删除在“指定日期前”或“指定日志前”的所有二进制binlog日志文件PURGE {MASTER | BINARY} LOGS TO ‘log_name‘

PURGE {MASTER | BINARY} LOGS BEFORE ‘date‘

实例:PURGE MASTER LOGS TO ‘MySQL-bin.010‘;

PURGE MASTER LOGS BEFORE ‘2003-04-02 22:46:26‘;

##BEFORE变量的date格式为‘YYYY-MM-DD hh:mm:ss‘。MASTER/BINARY是同义词。

1.2 主从master-slave集群环境中,删除binlog日志注意问题

1.2.1 从服务器slave正在读取试图删除的binlog,则purge删除操作失败,并返回错误

1.2.2 从服务器slave stop后,master上purge删除的binlog日志,并未被slave读取,则slave启动后不能复制同步主

1.3 清理binlog日志,正确操作步骤

1.3.1 主服务器master上,show master status;获取主服务器上的binlog日志

1.3.2 所有从服务器slave上,show slave status\G;检查正在读取的binlog日志

1.3.3 判定所有从服务器上已同步完成的,最早的日志文件的位置。purge删除的binlog日志必须早于该日志文件。

1.3.4 将要删除的binlog日志备份(建议步骤)

1.3.5 清理判定之前的日志文件

2 自动定期清理binlog日志,设置expire_logs_days参数

2.1 重启mysql,停机修改my.cnf配置文件vim /etc/my.cnf

##修改expire_logs_days,x是自动删除的天数,一般将x设置为短点,如10

expire_logs_days = 10

##二进制日志自动删除的天数。默认值为0,表示“没有自动删除”

systemctl restart mysqld

2.2 不重启mysql,线上修改mysql的exipre_logs_days参数> show binary logs;

> show variables like ‘%log%‘;

> set global expire_logs_days = 10;

附录:

1.expire_logs_days英文说明

Where X is the number of days you’d like to keep them around. I would recommend 10, but this depends on how busy your MySQL server is and how fast these log files grow. Just make sure it is longer than the slowest slave takes to replicate the data from your master.

Just a side note: You know that you should do this anyway, but make sure you back up your mysql database. The binary log can be used to recover the database in certain situations; so having a backup ensures that if your database server does crash, you will be able to recover the data.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值