Oracle数据库恢复环境和故障:在一台Windows server操作系统的服务器上部署Oracle数据库,服务器意外断电导致Oracle数据库报错。报错信息:"system01.dbf需要更多的恢复来保持一致性"。由于该Oracle数据库并没有备份,仅有一些断断续续的归档日志,无法通过备份文件恢复Oracle数据库的数据。管理员联系北亚企安数据恢复中心要求修复Oracle数据库。
Oracle数据库数据恢复流程:
1.检测数据库故障情况;
2.尝试挂起并修复数据库;
3.解析数据库文件;
4.导出并验证恢复的数据库文件。
Oracle数据库数据恢复过程:
1.检测服务器及数据库情况。使用dbv命令检测Oracle数据库数据文件是否完整,检测完成后发现检测的文件数据块中有40页的数据和29页的索引数据检测失败,其他文件均检测正常。
2.挂起并修复数据库。北亚企安数据恢复工程师搭建了Windows server环境,安装了和原服务器上相同的Oracle数据库环境,尝试将Oracle数据库挂起来,查看数据库的报错情况。
根据Oracle数据库的报错信息,北亚企安数据恢复工程师采用通过在线日志恢复数据的方法,使用recover database命令尝试修复。经过一系列的修复操作后发现恢复Oracle数据库所需时间段的归档日志缺失,只能利用cancel参数进行不完全的数据恢复。
再次执行命令,打开数据库查询实例状态有无报错,经过查询发现仍有部分数据报错,报错信息为"ora_00600"。这类Oracle数据库内部错误是无法通过命令修复的。借助expdp/exp工具尝试导出Oracle数据库,但是使用这两个工具导出Oracle数据库时依然有报错,该Oracle数据库已经不可能进行修复。
3.解析数据库文件获取数据。使用北亚企安自主研发的一款dbf解析工具获取数据库内的数据。北亚企安工程师获取到Oracle数据库数据后搭建数据库环境,创建数据库用户分配表空间等,将解析出来的数据库数据迁移到新数据库环境中,使用toad for oracle工具验证数据。
4.导出数据库数据并验证。使用exp工具将Oracle数据库导出,导出命令:exp system/abc file=C:\test\dump\zxfg.log owner=zxfg。本次导出正常无报错。
经用户方验证Oracle数据库完整,查询数据无异常,本次Oracle数据库数据恢复工作完成。