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日志清理的资料请关注脚本之家其它相关文章!

相关文章

  • SQL中distinct去重关键字使用和count统计组合使用方法

    SQL中distinct去重关键字使用和count统计组合使用方法

    这篇文章主要给大家介绍了关于SQL中distinct去重关键字使用和count统计组合使用的相关资料,count()是SQL中提供的用于统计记录数量的函数,需要的朋友可以参考下
    2024-08-08
  • 查看修改mysql编码方式让它支持中文(gbk或者utf8)

    查看修改mysql编码方式让它支持中文(gbk或者utf8)

    MySQL的默认编码是Latin1,不支持中文,要支持中文需要把数据库的默认编码修改为gbk或者utf8,真的是很麻烦啊,不过本文提供了详细的修改教程,感兴趣的你可不要走开啊,希望本文对你有所帮助
    2013-01-01
  • mysql备份策略的实现(全量备份+增量备份)

    mysql备份策略的实现(全量备份+增量备份)

    最近项目需要对数据库数据进行备份,通过查阅各种资料,设计了一套数据库备份策略,本文就来详细的介绍一下,感兴趣的可以了解一下
    2021-07-07
  • MySQL8.0 索引优化invisible index详情

    MySQL8.0 索引优化invisible index详情

    这篇文章主要介绍了MySQL8.0 索引优化invisible index详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • Mysql命令行导入sql数据

    Mysql命令行导入sql数据

    下面是在命令行下导入sql数据的方法,需要的朋友可以参考下。
    2010-03-03
  • MySQL Limit执行过程分析探索

    MySQL Limit执行过程分析探索

    limit是MySql的内置函数,一般用于查询表中记录的条数,作用是用于限制查询条数,下面这篇文章主要给大家介绍了关于SQL中limit函数语法与用法的相关资料,详细讲了MySQL Limit执行过程
    2022-12-12
  • MySQL优化案例之隐式字符编码转换

    MySQL优化案例之隐式字符编码转换

    这篇文章主要介绍了MySQL优化案例之隐式字符编码转换,隐式类型转换也会导致同样的放弃走树搜索,更多相关内容具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07
  • MySQL行级锁、表级锁、页级锁详细介绍

    MySQL行级锁、表级锁、页级锁详细介绍

    这篇文章主要介绍了MySQL行级锁、表级锁、页级锁详细介绍,同时列举了一些实例说明,需要的朋友可以参考下
    2014-05-05
  • MySQL子查询详解(单行子查询、多行子查询与相关子查询)

    MySQL子查询详解(单行子查询、多行子查询与相关子查询)

    所谓子查询是指在一个查询中嵌套了其他的若干查询,即在一个SELECT查询语句的WHERE或FROM子句中包含另一个SELECT查询语句,下面这篇文章主要给大家介绍了关于MySQL单行子查询、多行子查询与相关子查询的相关资料,需要的朋友可以参考下
    2022-09-09
  • Java连接mysql数据库并进行内容查询的方法

    Java连接mysql数据库并进行内容查询的方法

    下面小编就为大家带来一篇Java连接mysql数据库并进行内容查询的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10

最新评论