MySQL binlog日志清理的方案分享
# 登录mysql数据库 mysql -u root –p # 查看binlog是否开启,log_bin的状态为ON,表明binlog日志开启 show variables like 'log_%'; # 查看binlog日志文件大小,单位bytes show binary logs; # 显示binlog的过期时间,mysql5版本参数为expire_logs_days(默认值为0,标识从不删除),mysql8版本参数为binlog_expire_logs_seconds(默认值为2592000(30天),单位秒) show variables like '%expire%';
1 手工清除binlog
删除binlog日志文件,切勿删除正在使用的binlog 所以删除旧的即可,不要全删。 不要轻易手动去删除binlog(指的是rm命令), 会导致binlog.index和真实存在的binlog不匹配,推荐使用purge命令予清除历史文件(purge命令目前来说不区分版本)。
# 将mysql-bin.009560之前的binlog清掉 purge binary logs to 'mysql-bin.009560'; # 指定时间之前的binlog清掉 purge binary logs before '2023-08-01 00:00:00';
2 MySQL5版本
2.1 临时生效,重启后失效
# 设置保留7天 set global expire_logs_days=7; # 触发自动清理 flush logs;
2.2 永久有效,需要重启
修改配置文件my.cnf文件: vim /etc/my.cnf,在[mysqld]标签内增加如下内容
expire_logs_days=7 max_binlog_size=1024M
修改保存后,以下3种情况才生效:
- MySQL启动时
- 手动执行flush logs
- 当binlog大小超过max_binlog_size
# 执行命令是配置生效 flush logs;
3 MySQL8版本
3.1 临时生效,重启后失效
# 设置保留7天 set global binlog_expire_logs_seconds=7*60*60*24; # 触发自动清理 flush logs;
3.2 永久有效,需要重启
修改配置文件my.cnf文件: vim /etc/my.cnf,在[mysqld]标签内增加如下内容
# 设置保留7天 binlog_expire_logs_seconds=604800 max_binlog_size=1024M
生效条件见2.2模块
以上就是MySQL binlog日志清理方案详解的详细内容,更多关于MySQL binlog日志清理的资料请关注脚本之家其它相关文章!
相关文章
SQL中distinct去重关键字使用和count统计组合使用方法
这篇文章主要给大家介绍了关于SQL中distinct去重关键字使用和count统计组合使用的相关资料,count()是SQL中提供的用于统计记录数量的函数,需要的朋友可以参考下2024-08-08
查看修改mysql编码方式让它支持中文(gbk或者utf8)
MySQL的默认编码是Latin1,不支持中文,要支持中文需要把数据库的默认编码修改为gbk或者utf8,真的是很麻烦啊,不过本文提供了详细的修改教程,感兴趣的你可不要走开啊,希望本文对你有所帮助2013-01-01
MySQL8.0 索引优化invisible index详情
这篇文章主要介绍了MySQL8.0 索引优化invisible index详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下2022-09-09


最新评论