数据库数据恢复—Oracle数据库报错ORA-01110错误的数据恢复案例
Oracle数据库故障:
北京某公司一台运行oracle数据库的服务器,机房意外断电导致该服务器重启,重启后发现oracle数据库报错。该Oracle数据库没有备份。
Oracle数据库数据恢复过程:
1、北亚企安数据恢复工程师检查该oracle数据库的数据文件。
文件完整度:
该oracle数据库SYSAUX01.DBF存在大量的坏块,其他位置文件完整。
2、在北亚企安数据恢复服务器上搭建了与故障oracle数据库相同的运行环境,将oracle数据库挂起。挂起oracle数据库后依然出现与用户反馈相同的报错(报错内容:ORA-01110错误)。由此可以初步判断故障oracle数据库的控制文件由于异常断电被篡改,恢复该oracle数据库的数据需要先修复oracle数据库的控制文件。
3、查询故障oracle数据库的归档日志,发现归档日志不连续,恢复数据所需要的数据库归档日志丢失,北亚企安数据恢复工程师使用cancel参数进行不完全恢复。
再次执行alter database open命令将oracle数据库打开。查询oracle数据库实例状态,数据库报错内容改变,报错内容:ora_00600错误。
4、查询oracle数据库警告日志,追踪查询数据库内部错误情况,部分日志内容为:
ORA-00600: internal error code, arguments: [13013], [5001], [267], [8456009], [5], [8456009], [17], [], [], [], [], []
Non-fatal internal error happenned while SMON was doing logging scn->time mapping.
5、使用北亚企安自主研发的DBF解析工具获取数据。
6、创建oracle数据库,在oracle数据库中创建用户,为用户分配表空间,解锁用户并授权,然后将解析到的用户对象迁移到数据库中。
7、使用exp或者expdp导出zxfg用户下的所有对象,本例采用exp导出数据,其命令如下:
exp system/abc file=C:\test\dump\zxfg.dmp log=C:\test\dump\zxfg.log owner=zxfg
8、查询导出的数据库dmp文件及日志,确认oracle数据库数据完整正确。由用户方对恢复出来的数据库数据进行验证,经过多方反复验证确认数据完整有效。本次数据恢复工作完成。