mysql binlog日志查看与恢复方法示例

发布时间:2019-09-16编辑:脚本学堂
有关mysql binlog日志的查看与恢复方法,binlog日志记录了mysql数据的更新操作,多用于数据同步与恢复,有关binlog日志的管理操作方法,需要的朋友参考下。

mysql/ target=_blank class=infotextkey>mysql数据库中开启binlog日志,可以方便恢复数据,不过当日志文件增长速度快,很快占会占满磁盘空间,需要定期或手工删除日志文件。
 
第一部分,删除日志文件的方法:
 
一、设置日志保留时长expire_logs_days自动删除 
 

#查看当前日志保存天数: 
 show variables like ‘%expire_logs_days%’;    
 #这个默认是0,也就是logs不过期,可通过设置全局的参数,使他临时生效: 
 set global expire_logs_days=7;    
 #设置了只保留7天BINLOG, 下次重启mysql这个参数默认会失败,所以需在my.cnf中设置   
 expire_logs_days = 7  
 

二、手动删除BINLOG (purge binary logs)
 

#用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件 
 
PURGE {MASTER | BINARY} LOGS TO ‘log_name’  
PURGE {MASTER | BINARY} LOGS BEFORE ‘date’
 
#例如:
PURGE MASTER LOGS TO ‘mysql-bin.010′;  
PURGE MASTER LOGS BEFORE ‘2008-06-22 13:00:00′;  
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY); 
 

 
其它:
查看当前日志文件列表:show binary logs或是show master logs;

第二部分,biglog日志恢复数据的方法。

使用binlog日志可恢复数据,会用日志来恢复数据。
 
使用binlog恢复数据:
 
使用mysqlbinlog命令恢复日志
 

mysqlbinlog -d test /root/mysql/mysql-bin.000001|mysql -uroot -ppassword  
#1、关于mysqlbinlog在mysql 5.0上的使用方法,可以参考:官方资料
#2、如果不知道log-bin存放的文件位置,可以使用下面的命令查看:
 
mysql -uroot -ppassword -e 'SHOW BINLOG EVENTS G'    
#3、当只是需要恢复部分记录的时候,你可以使用时间点或位置点来定位,例如:  
mysqlbinlog --start-date="2005-04-20 9:01:00" --stop-date="2005-04-20 10:00:01" /var/log/mysql/bin.123456|mysql -uroot -ppassword[code]    
 
#恢复4月20日早上9点到10点这一段时间的数据。 
mysqlbinlog --start-position="368301" --stop-position="368312"/var/log/mysql/bin.123456| mysql -uroot -pmypwd    

#重做368301到368312位置点之间的操作。(位置点可以就是用mysqlbinlog看到的at xxx节点)    
mysqlbinlog --start-date="2005-04-20 9:55:00" --stop-date="2005-04-20 10:05:00" /var/log/mysql/bin.123456 > /tmp/mysql_restore.sql    

#同样只查看某段时间的操作,直接把它导到一个文件即可。