清理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的方法
退出当前会话失效。
1 2 3 4 5 | #临时关闭Binlog,主要用于通过Binlog恢复数据时使用 mysql> set sql_log_bin=0; #临时开启Binlog mysql> set sql_log_bin=1; |
3.自动清理Binlog
设置Binlog日志保留15天。
1 2 3 4 5 6 7 8 9 10 11 12 13 | [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日志
2)删除某个Binlog之前的所有Binlog日志
3)删除所有的Binlog
使用这个方式删除完Binlog后,新的Binlog从000001开始
4)查看数据库中有那些Binlog
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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二进制日志内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!
最新评论