此文详细介绍了根据mysql的二进制日志恢复丢失的数据。
在7月17日不小心删除了一个工程的整个数据,导致数据丢失。最新的备份是5月29日。丢失的数据比较多。由于我发现这个mysql数据库开启了日志功能,日志记录从从5月3日到7月17日。
1.查看mysql是否开启二进制日志。bin-log日志记录了所有的DDL和DML的语句。
查看http://www.doczj.com/doc/c6ff14737e21af45b307a8d6.htmlf中是否有log-bin的设置
Log-bin=mysql-bin
EXPIRE_LOGS_DAYS
此参数是设置日志的过期天数,过期的日志将会被自动删除,这有利于减少我们管理日志的工作量,需要修改http://www.doczj.com/doc/c6ff14737e21af45b307a8d6.htmlf
EXPIRE_LOGS_DAYS=3
这里我们设定保存日志为3天,3天之后过期的日志将被自动删除
2、定期完整备份
你还需要间隔一定的时间做数据库的完整备份,只有这样你才有可能快速的恢复最新数据。
3、查看备份时间
查看你备份的时间,如backup.sql,取最后一行:-- Dump completed on 2012-11-08 11:11:48。
或者查看backup.sql 的文件生成日期也可以。
4恢复
bin-log是记录着mysql所有事件的操作,当mysql发生灾难性错误时,可以通过bin-log 做完整恢复,基于时间点的恢复,和基于位置的恢复
基于时间点的恢复
首先利用mysqlbinlog.exe 命令将二进制日志转换为txt文件。
D:\Mysql\bin>mysqlbinlog.exe d:/Mysql/backupLog.000033>change.txt
从change.txt 可以看到我删除这个库的时间,如下图所示