清理MySQL Binlog二进制日志的三种方式

 更新时间:2024年01月03日 09:53:18   作者:Jiangxl~  
Binlog日志非常重要,但是占用的磁盘空间也很大,我们也需要定期的去清理二进制日志,在MySQL数据库中,提供了自动清理Binlog日志的参数,本文给大家介绍了清理MySQL Binlog二进制日志的三种方式,文中通过代码讲解非常详细,需要的朋友可以参考下

1.清理Binlog二进制日志的依据

Binlog日志非常重要,但是占用的磁盘空间也很大,我们也需要定期的去清理二进制日志,在MySQL数据库中,提供了自动清理Binlog日志的参数,根据指定的天数,保留n天内的Binlog日志,也可以手动人为删除。

在手动删除Binlog日志时,要切记不要使用rm -rf直接删除Binlog,会导致主从集群异常,如果的确使用rm -rf删除了Binlog文件,那么也有补救办法,去MySQL的主配置文件中关闭Binlog日志,然后重启数据库,再开启Binlog日志,并且给Binlog日志改一个名字,然后在重启即可。

Binlog日志不能盲目删除,是由策略依据的,Binlog日志的保留天数,一般都是2个全库备份保留天数+1天,例如全库备份保留7天,那么Binlog日志的保留天数就应该是15天,确保数据都能被恢复。

还可以通过Binlog来进行增量备份。

2.临时关闭Binlog的方法

退出当前会话失效。

#临时关闭Binlog,主要用于通过Binlog恢复数据时使用
mysql> set sql_log_bin=0;

#临时开启Binlog
mysql> set sql_log_bin=1;

3.自动清理Binlog

设置Binlog日志保留15天。

[root@mysql ~]# vim /etc/my.cnf 
[mysqld]
expire_logs_days=15
[root@mysql ~]# systemctl restart mysqld


mysql> select @@expire_logs_days;
+--------------------+
| @@expire_logs_days |
+--------------------+
|                 15 |
+--------------------+
1 row in set (0.00 sec)

4.手动清理Binlog日志

手动清理Binlog的命令都是在数据库中执行的。

1)删除当前时间之前多少天的Binlog日志

PURGE BINARY LOGS BEFORE now() - INTERVAL 3 day;

2)删除某个Binlog之前的所有Binlog日志

PURGE BINARY LOGS TO 'mysql-bin.000010';

3)删除所有的Binlog

使用这个方式删除完Binlog后,新的Binlog从000001开始

reset master

4)查看数据库中有那些Binlog

mysql> show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |      3058 |
| mysql-bin.000002 |       177 |
| mysql-bin.000003 |      5363 |
| mysql-bin.000004 |      1949 |
| mysql-bin.000005 |       402 |
| mysql-bin.000006 |      3347 |
| mysql-bin.000007 |       217 |
| mysql-bin.000008 |       194 |
+------------------+-----------+
8 rows in set (0.00 sec) 

到此这篇关于清理MySQL Binlog二进制日志的三种方式的文章就介绍到这了,更多相关清理MySQL Binlog二进制日志内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL删除数据库的两种方法

    MySQL删除数据库的两种方法

    这篇文章主要为大家详细介绍了MySQL删除数据库的两种方法,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • mysql 超大数据/表管理技巧

    mysql 超大数据/表管理技巧

    在实际应用中经过存储、优化可以做到在超过9千万数据中的查询响应速度控制在1到20毫秒。看上去是个不错的成绩,不过优化这条路没有终点,当我们的系统有超过几百人、上千人同时使用时,仍然会显的力不从心
    2013-03-03
  • MySQL8中的存储引擎以及文件解析

    MySQL8中的存储引擎以及文件解析

    这篇文章主要介绍了MySQL8中的存储引擎以及文件使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • IDEA使用mybatis-generator及配上mysql8.0.3版本遇到的bug

    IDEA使用mybatis-generator及配上mysql8.0.3版本遇到的bug

    这篇文章主要介绍了IDEA使用mybatis-generator以及配上mysql8.0.3版本遇到的问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Linux下安装mysql的教程详解

    Linux下安装mysql的教程详解

    这篇文章主要介绍了Linux下安装mysql的教程详解,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11
  • MySQL数据库完全卸载的方法

    MySQL数据库完全卸载的方法

    MySQL数据库是一款非常好用的数据库管理系统,但是相对来说卸载起来麻烦一些,本文就详细的介绍有一下卸载方法,感兴趣的可以了解一下
    2022-03-03
  • 关于join on和where执行顺序分析

    关于join on和where执行顺序分析

    这篇文章主要介绍了join on和where执行顺序,如果是inner join, 放on和放where产生的结果一样, 执行计划也是一样,但推荐使用on,本文对join on和where执行顺序给大家详细讲解,需要的朋友可以参考下
    2023-03-03
  • mysql中包含查询的五种方法总结

    mysql中包含查询的五种方法总结

    这篇文章主要给大家介绍了关于mysql中包含查询的五种方法, 在MySQL中,包含语句是一种用来包含其他查询语句的语句,通常用在WHERE语句中,需要的朋友可以参考下
    2023-08-08
  • mysql查看用户授权信息的具体方法

    mysql查看用户授权信息的具体方法

    在本篇文章里小编给大家整理的是一篇关于mysql查看用户授权信息的具体方法,有需要的朋友们可以参考下。
    2020-08-08
  • mysql中错误:1093-You can’t specify target table for update in FROM clause的解决方法

    mysql中错误:1093-You can’t specify target table for update in F

    最近在工作中遇到了一个mysql错误提示1093:You can’t specify target table for update in FROM clause,后来通过查找相关的资料解决了这个问题,现在将解决的方法分享给大家,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2017-01-01

最新评论