清理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的子查询概念和应用,解释了子查询是在主查询中嵌套另一个查询,包括外查询和内查询,并从多个角度进行分类,文章还深入探讨了子查询的编写技巧和使用场景,对于学习和应用MySQL的人来说,这是一篇非常有价值的指南
    2024-10-10
  • MySQL数据库十大优化技巧

    MySQL数据库十大优化技巧

    WEB开发者不光要解决程序的效率问题,对数据库的快速访问和相应也是一个大问题。希望本文能对大家掌握MySQL优化技巧有所帮助。
    2011-03-03
  • MySQL BETWEEN AND踩坑记录

    MySQL BETWEEN AND踩坑记录

    这篇文章主要介绍了MySQL BETWEEN AND踩坑记录,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • mysql数据库重命名语句分享

    mysql数据库重命名语句分享

    这篇文章主要介绍了mysql数据库重命名语句救命示例,语句中的数据库表前缀换成自己的就可以了,大家参考使用吧
    2014-01-01
  • MySQL查询优化必备知识点总结

    MySQL查询优化必备知识点总结

    这篇文章主要给大家介绍了关于MySQL查询优化必备知识点的相关资料,文中介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • phplib中的一些基本语法和函数

    phplib中的一些基本语法和函数

    phplib中常用的方法有set_file,set_block,set_var,parse,ppasre,p,get等。
    2010-04-04
  • MySQL下载安装配置详细教程 附下载资源

    MySQL下载安装配置详细教程 附下载资源

    这篇文章主要介绍了MySQL下载安装配置详细教程 附下载资源,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • MySQL InnoDB 事务锁源码分析

    MySQL InnoDB 事务锁源码分析

    InnoDB 事务锁,事务锁实现起来的代码却是又臭又硬的好大一坨,各种细节,今天小编在这里整理一个源码阅读笔记,把那一坨加锁相关的代码提炼出来,感兴趣的小伙伴别忘记收藏奥
    2021-09-09
  • mysql 8.0.24 安装配置方法图文教程

    mysql 8.0.24 安装配置方法图文教程

    这篇文章主要为大家详细介绍了mysql 8.0.24 安装配置方法图文教程,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • 解决MySQL 8.0以上版本设置大小写不敏感的问题

    解决MySQL 8.0以上版本设置大小写不敏感的问题

    MySQL 8.0以上版本默认区分大小写,但在低版本(如5.7)中,可以通过在my.cnf配置文件的[mysqld]节下添加lower_case_table_names=1来设置大小写不敏感,本篇博客将介绍如何解决MySQL 8.0以上版本设置大小写不敏感的问题,需要的朋友可以参考下
    2023-11-11

最新评论