ext3下删除mysql数据库的数据恢复案例

来源:asp之家 时间:2009-05-13 14:39:00 

[数据恢复故障描述]

一台重要的MYSQL数据库服务器,146GB*2,RAID1,约130GB DATA卷,存储了大约200~300个数据库。平时管理员对每个数据库dump出以后,直接压缩成.gz包,再将所有重要的.gz 包合起来压缩成一个总的.tar.gz包,这些文件每日产生一次,覆盖原来的备份。数据文件及备份文件全部存储于data卷上。

一次系统维护中,管理员不小心将data卷下的所有文件全部rm,删除后,马上停止系统,再未做其它操作,但删除时仍有大量终端在访问此服务器。

要求恢复mysql数据库文件,即myd、frm、myi(可重建)文件,或每个数据库的.gz包,或所有重要数据库总的.tar.gz备份包。

[数据恢复分析]

ext3下的数据删除,理论上,会清除inode中除节点类型、日期外的其他属性,诸如文件大小、数据存储地址等属性会全部清0,同时目录表中会以目录条目长度的方式屏蔽掉已删除文件,但会保留节点编号,最后会改变BITMAP中的空间占用标志。

即使是目录表中存在删除文件的节点编号,但因节点内容已经没有需要的东西,与数据区也是脱钩的。

从数据角度,大多数文件类型都会有特定的文件头标志,按头标志是有可能找到删除文件的起始位置的,但EXT3以块组为单位进行存储,同时数据与索引是混合存储于数据区的,所以数据连续存储的可能性非常之小,这样,按文件格式进行处理也是很困难的。

唯一的算法是结合上述几个特征,加上对日志的分析,加上对存储过程的模拟分析,尽可能地逼近真实存储结构。

[数据恢复过程]

1、对故障卷做完整备份。

2、对总.tar.gz进行恢复分析,但恢复出来的文件解压到50%左右会报错,后续文件列表也无法列出。经分析,最大的原因是删除时仍有数据写入破坏文件导致。

3、对分包的.gz文件进行恢复分析,大多数恢复成功。

4、对于未恢复成功的.gz数据库。直接恢复其myd\frm数据文件,所有数据恢复成功。

[其他]

1、LINUX EXT3数据删除后应尽快断掉文件系统IO,通常umount文件系统即可。

2、对故障卷做dd备份,确保数据恢复过程不会导致更严重的故障。

标签:ext3,mysql,数据库
0
投稿

猜你喜欢

  • ASP实现类似Java中的Linked HashMap类

    2010-04-03 20:49:00
  • 实现div可编辑的常见方法

    2007-11-06 12:02:00
  • 通过session在ASP中改善动态分页的性能

    2007-09-11 14:00:00
  • 去掉CSS赘余代码,CSS可以更简洁

    2008-11-05 13:07:00
  • asp fso创建与删除文件与文件夹

    2008-12-31 16:07:00
  • asp MYSQL出现问号乱码的解决方法

    2011-04-15 11:13:00
  • asp如何在网上查找链接?

    2010-06-22 21:10:00
  • 滑动展开/收缩广告代码实例效果

    2007-10-09 12:44:00
  • Flash的Fallback Content等

    2010-04-01 12:18:00
  • 教你快速掌握SQL语言中游标的使用技巧

    2009-01-08 16:24:00
  • accept-charset与Header P3P

    2009-04-01 18:43:00
  • 22个HTML5的初级技巧

    2010-12-17 12:39:00
  • 解决oracle用户连接失败的解决方法

    2011-01-04 19:35:00
  • 使用Alt提升可访问性

    2009-04-04 19:22:00
  • 如何用ASP创建日志文件

    2008-03-10 17:27:00
  • 网站改版常见问题答疑

    2008-08-22 18:31:00
  • 如何判断电子邮件的地址格式是否正确?

    2010-01-12 20:12:00
  • 如何做迅雷电影提示效果

    2011-03-31 17:15:00
  • 用我喜欢的字体(Cufon)

    2009-12-11 18:51:00
  • css基础教程之序曲

    2008-07-23 12:40:00
  • asp之家 网络编程 m.aspxhome.com