正确清理binlog日志

摘要: MySQL中的binlog日志记录了数据库中数据的变动,便于对数据的基于时间点和基于位置的恢复,但是binlog也会日渐增大,占用很大的磁盘空间,因此,要对binlog使用正确安全的方法清理掉一部分没用的日志。

【方法一】手动清理binlog
清理前的准备:
① 查看主库和从库正在使用的binlog是哪个文件
show master status\G 
show slave status\G    
② 在删除binlog日志之前,首先对binlog日志备份,以防万一

开始动手删除binlog:
purge master logs before‘2016-09-01 17:20:00‘; //删除指定日期以前的日志索引中binlog日志文件

purge master logs to‘mysql-bin.000022‘;  //删除指定日志文件的日志索引中binlog日志文件
注意:
时间和文件名一定不可以写错,尤其是时间中的年和文件名中的序号,以防不小心将正在使用的binlog删除!!!
切勿删除正在使用的binlog!!!
使用该语法,会将对应的文件和mysql-bin.index中的对应路径删除。

【方法二】通过设置binlog过期的时间,使系统自动删除binlog文件
mysql> show variables like ‘expire_logs_days‘;  
+------------------+-------+  
| Variable_name    | Value |  
+------------------+-------+  
| expire_logs_days |     0    |  
+------------------+-------+  
mysql> set global expire_logs_days = 30;        #设置binlog多少天过期
注意:
过期时间设置的要适当,对于主从复制,要看从库的延迟决定过期时间,避免主库binlog还未传到从库便因过期而删除,导致主从不一致!!!

时间: 2024-10-07 04:25:16

正确清理binlog日志的相关文章

mysql清理binlog日志

mysql的binlog日志过多过大,清理过程. 1.查看binlog日志 mysql> show binary logs; +------------------+-----------+ | Log_name | File_size | +------------------+-----------+ | mysql-bin.000001 | 13255920 | | mysql-bin.000002 | 143716 | | mysql-bin.000003 | 524288119 | |

MySQL数据库全备和增备、增量数据恢复案例以及定时清理 binlog 日志

一.mysql 全量备份以及增量备份1.全量备份命令: /application/mysql/bin/mysqldump -uroot -p123456 --lock-all-tables -A -B -F --master-data=2 --single-transaction --events|gzip > /opt/Mysql_Backup/all_backup/all_backup.sql.gz 如上一段代码所示,其功能是将所有数据库全量备份.其中 MySQL 用户名为:root ,密码

MySQL bin-log 日志清理方式

MySQL bin-log 作用 1.数据恢复:如果你的数据库出问题了,而你之前有过备份,那么可以看日志文件,找出是哪个命令导致你的数据库出问题了,想办法挽回损失. 2.主从服务器之间同步数据:主服务器上所有的操作都在记录日志中,从服务器可以根据该日志来进行,以确保两个同步. 3.在什么时间会删除过期日志? 每次进行 LOG flush的时会自动删除过期的日志,那么什么时间才能触发log flush,手册上的解释为: 重启 MySQL bin-log 文件大小达到参数 max_binlog_si

mysql主从binlog日志自动清理及手动删除

问题反馈: mysql主从,在没有设置自动清理binlog日志的情况下,会产生庞大的同步日志文件,占用磁盘空间. 1 手动清理binlog日志,purge master logs 1.1 删除在"指定日期前"或"指定日志前"的所有二进制binlog日志文件   PURGE {MASTER | BINARY} LOGS TO 'log_name'     PURGE {MASTER | BINARY} LOGS BEFORE 'date' 实例: PURGE MAST

Mysql的binlog日志与mysqlbinlog命令

binlog相关 MySQL 的二进制日志 binlog 可以说是 MySQL 最重要的日志,它记录了所有的 DDL 和 DML 语句(除了数据查询语句select.show等),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的.binlog 的主要目的是复制和恢复. Binlog日志的两个最重要的使用场景MySQL主从复制:MySQL Replication在Master端开启binlog,Master把它的二进制日志传递给slaves来达到master-sl

mysql实时增量备份 binlog日志备份

启用binlog日志实现对数据的增量备份: 日志存储位置: /var/lib/mysql/ 日志名称:主机名-bin.000001 或mysqld-bin.000001 binlog日志概述:二进制日志,记录所有更改数据的操作:默认超过500M自动生成新的日志: 修改主配置文件启用binlog日志 vim /etc/my.cnf [mysqld] log-bin  (或指定日志名log-bin=x.000001或者指定目录和文件名log-bin=/logdir/X.000001) max-bin

mysql定时清理binlog

一.没有主从同步的情况下清理日志 mysql -uroot -p123456 -e 'PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ),INTERVAL 5 DAY)'; #mysql 定时清理5天前的binlog mysql -u root -p #进入mysql 控制台 reset master; #重置binlog 二.MySQL主从同步下安全清理binlog日志 1.mysql -u root -p #进入从服务器mysql控制台 show slave

老男孩教育每日一题-2017年4月27日-如何正确清理MySQL binlog?

老男孩教育每日一题-2017年4月27日-如何正确清理MySQL binlog? 今天是每日一题陪伴大家的第37天,期待你的进步. 对于题目和答案的任何疑问,请在博客评论区留言. 往期题目索引 http://lidao.blog.51cto.com/3388056/1914205

Mysql数据库之Binlog日志使用总结

binlog二进制日志对于mysql数据库的重要性有多大,在此就不多说了.下面根据本人的日常操作经历,并结合网上参考资料,对binlog日志使用做一梳理: 一.binlog日志介绍1)什么是binlogbinlog日志用于记录所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句.语句以"事件"的形式保存,它描述数据更改. 2)binlog作用因为有了数据更新的binlog,所以可以用于实时备份,与master/slave主从复制结合. 3)和binl