故障:
因为服务器意外断电,导致服务器上的 Oracle 数据库报错:“system01.dbf 须要更多的复原来放弃一致性”。因为数据库并没有备份,仅有一些断断续续的归档日志,用户分割北亚数据恢复核心修复 Oracle 数据库。
Oracle 数据恢复过程:
1、检测服务器及数据库状况。用 dbv 命令检测数据文件是否是残缺的。见下图:
通过上图能够看到检测的文件数据块中有 40 页的数据是检测失败的状态。另外有 29 页的索引数据也是失败状态。除此以外其余文件均为失常状态。
2、挂起并修复数据库
北亚数据恢复工程师在北亚数据恢复专用服务器上搭建了一组 Windows server 环境,并搭建了和原服务器上雷同的 Oracle 数据库环境,尝试将数据库挂起来,查看 Oracle 数据库的报错状况,见下图:
3、依据 Oracle 数据库的报错状况,北亚数据恢复工程师采取了利用在线日志复原数据的办法,应用 recover database 命令进行 oracle 数据库修复。
4、修复过程中发现,因为归档日志不间断,复原数据库所需时间段的归档日志缺失,北亚数据恢复工程师只能应用 cancel 参数进行不齐全数据恢复。
5、北亚数据恢复工程师再次执行复原命令,关上数据库查问实例状态,发现仍有局部数据报错,报错内容为“ora_00600”,见下图:
6、这类数据库外部谬误是无奈通过命令进行修复的,北亚数据恢复核心工程师借助 expdp/exp 工具尝试对数据库进行导出,但这两个工具导出数据库时仍然有报错,数据库曾经不可能进行修复。
7、解析数据库文件获取数据。应用北亚自主研发的一款 dbf 解析工具,获取到用户数据库内的数据。见下图:
8、北亚数据恢复工程师获取到数据库数据后在北亚数据恢复专用服务器内搭建数据库环境,创立数据库、用户、调配表空间等。将解析进去的数据库数据迁徙到新数据库中。应用 toad for oracle 工具验证数据。见下图:
9、导出数据库数据并验证。北亚数据恢复工程师再次应用 exp 工具将数据库导出,导出命令:
exp system/abc file=C:\test\dump\zxfg.dmp log=C:\test\dump\zxfg.log owner=zxfg
本次导出失常,没有任何报错。经用户亲自验证,Oracle 数据库残缺,本次数据恢复胜利。