diskgenius

Oracle数据库误删除后Oracle文件碎片恢复案例

2015-2-9 12:23| 发布者: wzlr| 查看: 2177| 评论: 0|原作者: 小尹|来自: 小尹

摘要: 南方某市,一大型企业的一套IBM管理系统,该管理系统使用Oracle数据库平台为windows2008,数据库版本为Oracle10.2.0.3 32位。管理员在管理系统中误删除了数据库,导致整个数据库的控制文件、数据文件、日志文件 等数 ...
南方某市,一大型企业的一套IBM管理系统,该管理系统使用Oracle数据库平台为windows2008,数据库版本为Oracle10.2.0.3 32位。管理员在管理系统中误删除了数据库,导致整个数据库的控制文件、数据文件、日志文件 等数据全部在系统层被删除。

数据库中的数据极其重要,为该公司的核心业务,在删除数据库后,该公司求助于一家数据恢复公司,恢复了半个月数据仍然大量缺失,而且在客户端也无法正常调用恢复的数据库。

最后客户求助 ,希望在最快的时间内完整恢复数据。
下面是尹工对此案例的完整恢复过程。

把客户的存储介质镜像后,分析数据,发现所有的数据都被删除。
但使用常用数据恢复软件仍可正常恢复控制文件和部分数据文件。
恢复出控制文件后,解析控制文件,发现有一个32GB 和一个11GB 的数据文件 不可恢复,下图在 winhex中只能看一个 JTS.DBF 文件,这是32GB的文件,那个 11GB 的文件连MFT都被覆盖。

而在这个32GB的文件在 winhex中显示0字节,这是由 windows的NTFS特性决定的。
NTFS在文件大于4GB或文件碎片过多,出现扩展MFT后,删除的文件将被清空MFT,所以这个 32GB 的 JTS.DBF 文件显示0字节。

这种被清空MFT的文件用一般的数据恢复软件将不可能被恢复。


尹工使用内部 的Oracle碎片级恢复软件在磁盘底层扫描和分析所有Oracle文件的碎片 :




软件列出扫描到的碎片,并自动分析碎片所属的文件和文件所属的数据库名、表空间、文件ID等信息。
那个 32GB 的数据文件 在Oracle中创建数据文件时没有使用 'next size' 语句,导致碎片达2100个之巨。

恢复出数据,然后根据控制文件中的信息把文件改名,用 VMxDB.com 的Oracle文件检测校验软件 对所有文件进行块检测,发现数据极其完美,没有一个坏块。



内部 的Oracle环境下直接拉起数据库,数据库没有任何报错。
访问数据也没任何问题,客户端调用也没任何问题。


全系统Oracle环境:(Win、Linux、AIX、HP-UX、 Solaris)  Oracle(9i、10g、11g) 环境已搭建完成 。
DB2环境:(Win、Linux、AIX、HP-UX、 Solaris)  DB2(v8、v9、v10) 环境已搭建完成 (暂时不支持 z/OS和 i/OS 环境)。
全系统的 Sybase ASE 环境正在搭建中。

开心

鄙视
2

鼓掌

愤怒

可怜

刚表态过的朋友 (2 人)

最新评论

返回顶部