高难度数据恢复案例:Linux Ext3文件系统误删除

来源:zdnet 作者:zdnet
  

为了更好的确保数据安全,企业级数据一般都存储在安全性及稳定性更高的Linux及Unix内核系统的存储设备上。据统计,企业级数据恢复案例较多的集中在Windows内核的服务器。不过,Windows内核的数据恢复技术难度不大,而Linux及Unix出故障的概率比较小,但是一旦出现问题,数据恢复难度非常大,经过多年的艰苦研究,终于在Unix(IBM AIX,HP-Unix)及Linux系统下的各种文件系统(如:EXT3、JFS2、ReiserFS等)的数据恢复取得了突破性进展。

下面,我们看一个比较典型的Ext3文件系统误删除的成功案例。

客户:日本某全球500强公司

服务器环境:浪潮服务器,3块硬盘做的Raid5。

文件系统:EXT3

发生故障时间:2010年3月18 上午10点左右

工程师误操作:维护工程师停掉Oracle服务,打算把Oracle做一个冷备份,然后把Oracle库文件备份到windows PC Server上,再用CuteFTP的客户端下载。在下载过程中,发现下载速度特别慢,想删除下载任务,结果误操作,把要下载的Oracle实例文件夹整个都删除了,Oracle库文件、控制文件、日志文件全部删除。

数据恢复:EXT3文件系统误删除数据恢复技术介绍

实际上,Linux操作系统的EXT3文件系统并没有预留反删除的功能。在EXT3文件系统中,每个文件都是通过Inode来描述其数据存放的具体位置,当文件被删除以后,Inode的数据指针部分被清零,文件目录区没有太多变化。文件的读写都是通过Inode来实现,当Inode数据指针被清零以后,即便文件内容还在,也没有办法把文件内容组合出来。

EXT3文件系统是一种带日志功能的文件系统,Inode的变化会在日志文件.journal中有记录,.journal文件比较小,一般是32MB。当EXT3文件系统中的metadata数据发生变化时,相应的metadata在.journal文件会有一份COPY。比如一个文件被删除了,它的Inode信息会在.journal文件中先保存一份,然后把要删除文件Inode相关信息清零。这个.journal文件是循环使用的,当操作过多时,删除的文件的Inode日志记录会被新的数据替换,这就彻底丧失了根据Inode找回数据的机会了。如果是大量文件的删除,这个.journal文件会被反复循环利用多次,只留给最后删除的那些文件的恢复机会。

数据恢复专家上门服务 3天Oracle数据库奇迹般成功恢复!

客户在北京咨询了五六家数据恢复公司,最终决定请数据恢复专家上门服务。数据修复专家开车抵达位于顺义区天竺的客户数据中心现场。

客户要恢复的是Oracle数据库,Oracle数据库文件被删除以后,只要是数据内容没有被覆盖,数据恢复技术是可以把文件单独提取出来。DST专家经过深入分析,在.journal文件没有找到删除过的Oracle数据文件,原因是用户删除数据以后,系统还在开机运行,同时尝试启动过Oracle实例,Oracle产生一些日志文件,这些日志文件数量比较多,而要恢复的删除过的文件数量只有16个,在.journal文件中已经没有了删除文件的Inode信息。最终,数据恢复的思路只有两条:

第一种:根据Oracle数据文件内部结构,对全盘进行搜索,符合Oracle数据页面的数据都提取出来,然后按照Oracle数据文件的ID号进行重新组合。

第二种:根据Oracle数据文件分布规律,精确定位Oracle文件的数据指针地址,包括一级间接地址、二级间接地址和三级间接地址,重新构造出该文件的Inode信息,然后把数据读取出来。

最终恢复的效果非常好。第二天下午,由于工作量比较大,现场编写了脚本,以提高Oracle数据库组合进度。第三天,Oracle能正常启动。工程师把数据全部备份出来,最后发现有两个表数据少了一些记录,经查明,原因就是删除文件以后,一些日志文件的写入该分区,破坏了Oracle数据文件的一些数据页面,幸好这两张表数据对用户来说不是很重要,客户接受数据恢复结果。

专家提示:

在LINUX/UINX下误删除了文件,当发现数据丢失以后,不要进行任何操作,马上关机,保留现场。如果条件不允许关机,就要想办法把数据丢失的文件系统经过DD镜像到另外的存储空间上作为最原始的备份,以便数据恢复专家现场诊断。


时间:2010-05-05 10:15 来源:zdnet 作者:zdnet 原文链接

好文,顶一下
(20)
87%
文章真差,踩一下
(3)
13%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量