记录一下误删除了mysql表中的数据后的恢复过程
2017-03-10 23:53
1896 查看
用navicat删除数据库中的入侵数据,导致删顺手了,把一些看似重复数据的重要数据在表中直接右键删除掉了(相当于delete from table命令),而该数据库没有做过这些数据的备份,同时没有开启二进制日志,常规的恢复方法彻底走入死路。
在解决的过程中,做过以下几种尝试:
1.了解到如果开启了日志,直接mysqlbinlog 使用日志恢复即可。
2.如果不是删除了一个表的部分数据,而是删除整个表,那么可以在删除后马上用磁盘数据恢复软件尝试恢复。(因为删除表后会有文件被删除,而删除表的部分数据,文件还是存在)
3.找数据恢复的公司,该公司号称用ibdata1就能恢复,于是我使用工具分析ibdata1(分析过程参考http://www.cnblogs.com/gomysql/p/3586822.html),一页一页查看有没有历史记录存在,最后发现页中只存放了现有数据。而使用ibdata1恢复数据,应该是在了解数据表结构的前提下,数据库除ibdata1外其他数据受损不能正常使用数据库时尝试,而不是删了表数据后恢复什么的。(事实上,这个文件是存储现有表数据的,其实也可以设置成每个表一个文件。)
4.最后发现mysql下有ib_logfile0和ib_logfile1两个文件,其实这两个文件里,记录了Mysql的一些事物日志,用于事务的前滚后滚,是Mysql自身使用的,这个文件用文本工具打开后,有很多乱码,但却可以查找到被删除的少量数据的insert记录,极少数的乱码通过前后语句找出了原文,最终通过事物日志恢复了删除的文件。
注:用事物日志恢复,需要几个前提。
1:知道被删除数据的大概位置,不要这边查找,那边又不断有新数据插入。
2:因为有很多乱码,适用于查找少量数据,而不是用作大量数据的恢复,浪费体力。
3:如果二进制日志没开,没有备份,那么只能用这种方法恢复了。
在解决的过程中,做过以下几种尝试:
1.了解到如果开启了日志,直接mysqlbinlog 使用日志恢复即可。
2.如果不是删除了一个表的部分数据,而是删除整个表,那么可以在删除后马上用磁盘数据恢复软件尝试恢复。(因为删除表后会有文件被删除,而删除表的部分数据,文件还是存在)
3.找数据恢复的公司,该公司号称用ibdata1就能恢复,于是我使用工具分析ibdata1(分析过程参考http://www.cnblogs.com/gomysql/p/3586822.html),一页一页查看有没有历史记录存在,最后发现页中只存放了现有数据。而使用ibdata1恢复数据,应该是在了解数据表结构的前提下,数据库除ibdata1外其他数据受损不能正常使用数据库时尝试,而不是删了表数据后恢复什么的。(事实上,这个文件是存储现有表数据的,其实也可以设置成每个表一个文件。)
4.最后发现mysql下有ib_logfile0和ib_logfile1两个文件,其实这两个文件里,记录了Mysql的一些事物日志,用于事务的前滚后滚,是Mysql自身使用的,这个文件用文本工具打开后,有很多乱码,但却可以查找到被删除的少量数据的insert记录,极少数的乱码通过前后语句找出了原文,最终通过事物日志恢复了删除的文件。
注:用事物日志恢复,需要几个前提。
1:知道被删除数据的大概位置,不要这边查找,那边又不断有新数据插入。
2:因为有很多乱码,适用于查找少量数据,而不是用作大量数据的恢复,浪费体力。
3:如果二进制日志没开,没有备份,那么只能用这种方法恢复了。
相关文章推荐
- Mysql 删除(Delete)表记录后数据恢复成功
- mysql innodb ibdata 数据文件误删除恢复过程
- Mysql 表记录删除后数据恢复成功
- mysql遍历所有表,删除符合条件的记录的存储过程
- 查询恢复误删除表的某一时间段的记录数据!
- [续2]记录“装nginx+3个tomcat+mysql,测一下1000并发访问的应用性能”的过程
- 记录一次数据恢复过程
- 硬盘坏道引起的LINUX ext3故障的数据恢复过程记录
- SATA 250GB*8 RAID数据恢复过程记录
- MySQL删除binlog日志及日志恢复数据
- 记录一下在WinXP上搭建Apache的httpd+PHP+MySQL+Wordpress的过程
- linux reiserfs文件系统损坏后的数据恢复过程记录
- AIX JFS2文件系统误删除数据恢复记录
- Mysql 删除表(Drop)后数据恢复成功
- 成功数据恢复一例MYSQL数据库记录恶意删除
- Dell PowerVault NF500 RAID数据恢复过程记录
- MySQL数据恢复过程
- mysql怎样通过binlog恢复被恶意删除的数据?
- MySQL 日志的启用与关闭,日志记录操作,方便恢复数据
- 关于mysql source恢复数据过程中,select操作hang