MySQL binlog日志清理的方案分享

 更新时间:2024年01月10日 11:19:17   作者:菜鸟程序员a  
Binlog日志非常重要,但是占用的磁盘空间也很大,我们也需要定期的去清理二进制日志,在MySQL数据库中,提供了自动清理Binlog日志的参数,本文给大家详细介绍了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日志清理的资料请关注脚本之家其它相关文章!

相关文章

  • MySQL关闭密码强度验证功能

    MySQL关闭密码强度验证功能

    本文通过实例代码给大家介绍了mysql关闭密码强度验证功能,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-06-06
  • MySQL中索引失效的常见场景与规避方法

    MySQL中索引失效的常见场景与规避方法

    这篇文章主要给大家介绍了关于MySQL中索引失效的常见场景与规避的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  • MySQL使用索引优化性能

    MySQL使用索引优化性能

    这篇文章介绍了MySQL使用索引优化性能的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • MySQL错误日志Error Log从配置到故障排查的完全指南

    MySQL错误日志Error Log从配置到故障排查的完全指南

    在MySQL数据库运维中,遇到服务启动失败、连接异常、死锁等问题时,错误日志(Error Log)绝对是你的 排障利器,它默认开启,记录着 MySQL 启动、关闭及运行过程中的错误、警告与调试信息,本文将从配置查看、核心作用、进阶功能三个维度,带你全面掌握Error Log的使用技巧
    2026-02-02
  • MySQL按年/月/周/日/小时分组查询、排序、limit及判空用法实例

    MySQL按年/月/周/日/小时分组查询、排序、limit及判空用法实例

    我们在用Mysql抽取数据时候,经常需要按照天、周、月等不同的粒度对数据进行分组统计,下面这篇文章主要给大家介绍了关于MySQL按年/月/周/日/小时分组查询、排序、limit及判空用法的相关资料,需要的朋友可以参考下
    2023-03-03
  • Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]

    Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]

    这几天基于Heritrix写了一个爬虫,用到mysql,在导入导出数据时,遇到一些乱码问题,好不容易解决了,记录一下,以备查看
    2013-04-04
  • MySQL 设置AUTO_INCREMENT 无效的问题解决

    MySQL 设置AUTO_INCREMENT 无效的问题解决

    本文主要介绍了MySQL 设置AUTO_INCREMENT 无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-06-06
  • Mysql如何查看表的索引

    Mysql如何查看表的索引

    这篇文章主要介绍了Mysql如何查看表的索引问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • MySQL 实现树的遍历详解及简单实现示例

    MySQL 实现树的遍历详解及简单实现示例

    这篇文章主要介绍了MySQL 实现树的遍历详解及简单实现示例的相关资料,这里提供了示例代码及测试结果,需要的朋友可以参考下
    2017-01-01
  • Oracle与MySQL的区别详解

    Oracle与MySQL的区别详解

    MySQL和Oracle Database都是一个关系型数据库管理系统,本文主要介绍了MySQL和Oracle Database的区别及优缺点是什么,感兴趣的小伙伴欢迎阅读
    2023-04-04

最新评论