博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql删除binlog日志及日志恢复数据的方法
阅读量:6993 次
发布时间:2019-06-27

本文共 1531 字,大约阅读时间需要 5 分钟。

 

 
  1. 基本上大家装mysql,都会开启binlog功能,开启这个功能的好处是,日后方便恢复数据,而坏处是日志文件增长速度快,很快占会占满磁盘空间,所以我们要定期或手工来删除过大的日志文件。 
  2.  
  3. 删除日志文件的方法大概有如下几中: 
  4.  
  5. 一、设置日志保留时长expire_logs_days自动删除 
  6.  
  7. #查看当前日志保存天数: 
  8.  
  9. show variables like ‘%expire_logs_days%’;    
  10.  
  11. #这个默认是0,也就是logs不过期,可通过设置全局的参数,使他临时生效: 
  12.  
  13. set global expire_logs_days=7;    
  14.  
  15. #设置了只保留7天BINLOG, 下次重启mysql这个参数默认会失败,所以需在my.cnf中设置   
  16.  
  17. expire_logs_days = 7   
  18.  
  19. 二、手动删除BINLOG (purge binary logs) 
  20.  
  21. #用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件  
  22.  
  23. PURGE {MASTER | BINARY} LOGS TO ‘log_name’   
  24. PURGE {MASTER | BINARY} LOGS BEFORE ‘date’ 
  25.  
  26. #例如: 
  27.  
  28. PURGE MASTER LOGS TO ‘mysql-bin.010′;   
  29. PURGE MASTER LOGS BEFORE ‘2008-06-22 13:00:00′;   
  30. PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);  
  31.  
  32. 其它: 
  33.  
  34. 查看当前日志文件列表:show binary logs或是show master logs;  
  35. 使用binlog日志的目的是为了方便恢复数据,所以我们不光要会删除,还要会用日志来恢复数据。 
  36.  
  37. 使用binlog恢复数据: 
  38.  
  39. 使用mysqlbinlog命令恢复日志 
  40.  
  41. mysqlbinlog -d test /root/mysql/mysql-bin.000001|mysql -uroot -ppassword   
  42.  
  43.    
  44. #1、关于mysqlbinlog在mysql 5.0上的使用方法,可以参考:官方资料 
  45.  
  46. #2、如果不知道log-bin存放的文件位置,可以使用下面的命令查看: 
  47.  
  48. mysql -uroot -ppassword -e 'SHOW BINLOG EVENTS \G'     
  49.  
  50. #3、当只是需要恢复部分记录的时候,你可以使用时间点或位置点来定位,例如:   
  51.  
  52. 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]     
  53.  
  54. #意思是恢复4月20日早上9点到10点这一段时间的数据。  
  55.  
  56. mysqlbinlog --start-position="368301" --stop-position="368312"/var/log/mysql/bin.123456| mysql -uroot -pmypwd     
  57.  
  58. #意思是重做368301到368312位置点之间的操作。(位置点可以就是用mysqlbinlog看到的at xxx节点)     
  59.  
  60. 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     
  61.  
  62. #同样的,如果我们只是想查看某段时间的操作,直接把它导到一个文件即可。   

 

转载地址:http://uhfvl.baihongyu.com/

你可能感兴趣的文章
51单片机点亮双向流水灯
查看>>
字符串前面+r
查看>>
C#网络编程(基本概念和操作) - Part.1
查看>>
SQLite的sqlite3_column_blob函数
查看>>
CLR的执行模型(3):加载
查看>>
网站伪静态的好处与坏处
查看>>
IOS的三种CallBack
查看>>
VC++编程中常用的字符串转换函数
查看>>
.NET与Java互通AES算法加密解密
查看>>
C++ 结构体初始化
查看>>
POJ 1416
查看>>
Classic Binary Search
查看>>
论文阅读笔记三十二:YOLOv3: An Incremental Improvement
查看>>
条件、循环、函数定义、字符串操作练习
查看>>
关于list在转json时的一点小问题
查看>>
Ubuntu 查看文件以及磁盘空间大小管理
查看>>
ExtJS与jQuery的一点细节上的对比
查看>>
Struts2源码浅析-初始化
查看>>
nginx安装
查看>>
angularjs 利用filter进行表单查询及分页查询
查看>>