你好,游客 登录 注册 搜索
背景:
阅读新闻

MySQL删除binlog日志及日志恢复数据

[日期:2012-08-08] 来源:51cto  作者:小崔 [字体: ]

基本上大家装MySQL,都会开启binlog功能,开启这个功能的好处是,日后方便恢复数据,而坏处是日志文件增长速度快,很快占会占满磁盘空间。

所以我们要定期或手工来删除过大的日志文件。

删除日志文件的方法大概有如下几中:

一、设置日志保留时长expire_logs_days自动删除

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

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

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

其它:

  1. 查看当前日志文件列表:show binary logs; 

使用binlog日志的目的是为了方便恢复数据,所以我们不光要会删除,还要会用日志来恢复数据。

使用binlog恢复数据:

使用mysqlbinlog命令恢复日志

  1. mysqlbinlog -d test /root/mysql/mysql-bin.000001|mysql -uroot -ppassword   
  2.  
  3. ※附录   
  4.  
  5. #1、关于mysqlbinlog在mysql 5.0上的使用方法,可以参考:官方资料   
  6.  
  7. #2、如果不知道log-bin存放的文件位置,可以使用下面的命令查看:   
  8.  
  9. mysql -uroot -ppassword -e 'SHOW BINLOG EVENTS \G'   
  10.  
  11. #3、当只是需要恢复部分记录的时候,你可以使用时间点或位置点来定位,例如:   
  12.  
  13. 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]   
  14.  
  15. #意思是恢复4月20日早上9点到10点这一段时间的数据。   
  16.  
  17. mysqlbinlog --start-position="368301" --stop-position="368312"/var/log/mysql/bin.123456| mysql -uroot -pmypwd   
  18.  
  19. #意思是重做368301到368312位置点之间的操作。(位置点可以就是用mysqlbinlog看到的at xxx节点)   
  20.  
  21. 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   
  22.  
  23. #同样的,如果我们只是想查看某段时间的操作,直接把它导到一个文件即可。  
linux
相关资讯       MySQL基础 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款