mysql 清理主同步日志_【mysql】MYSQL主从同步如何自动化清理日志?

目前MYSQL 主从同步已经做好了。现在在考虑日志容量的问题,曾经被binlog搞爆过磁盘。

主从存在 主的mysql-bin 和 从的中继日志,我想请教一下有没有办法自动化去清理这俩个日志并且不影响到主从数据同步。百度了都是手动形式的,这样可太麻烦了。

我的想法是,mysql-bin是有pos的,不知道能不能从pos着手去清理某个点以前的日志,这样的话也不用锁表吧。但我不清楚如何能实现。

如果是从整个mysql-bin去清理,可能会需要去用到锁表吧。那用到了锁表是不是不太容易去自动化清理了?

或者哪位大神有完整的解决方案?谢谢赐教!

回答

binlog日志可以按照时间和二进制文件来手动清理, 语法如下

# 按时间来

purge master logs before 'yyyy-mm-dd hh24:min:ss'

# 按日志文件来

purge master logs to 'mysql-bin.xxxxxx';

按照时间来: 设置一个定时任务,定时清理 n 小时/天前的二进制日志

按照文件来: 设置一个定时任务,定时获取最新的binlog日志文件(show master logs), 然后预留一到两个二进制文件

又或者把binlog日志的保留时间设置短一点,例如三天

set global expire_logs_days = 3;

风险提示:如果清理了binlog日志,备节点没有及时同步,会有数据不一致风险,所以清理前要检查备节点读取到哪个位置。binlog日志会把硬盘塞满意味着硬盘空间不合理,建议加大硬盘空间,或者把日志文件分开存放

中继日志不建议手动清理,MySQL在执行完中继日志后会自动清理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值