故障:

设备断电重启,oracle数据库报错,数据库没有备份,管理员联系北亚数据恢复中心进行数据恢复。


oracle数据库恢复过程:

1、经北亚数据恢复工程师检查数据文件后,文件完整度见下图。

【北亚数据恢复】异常断电导致Oracle数据库报错(ORA-01110错误)且没有备份的数据恢复_数据恢复

我们分析上图数据可以得知,用户的数据库SYSAUX01.DBF存在大量的坏块,其他位置文件是完整的。


2、在北亚数据恢复服务器上挂起数据库并修复。

在北亚数据恢复服务器上搭建了和这个oracle数据库的生产环境一样的环境,将oracle数据库挂起。挂起数据库依然出现了管理员反馈的报错(ORA-01110错误)。

北亚数据恢复工程师推断,该数据库的控制文件由于意外断电已经被修改,要恢复整个数据库的数据,必须先修复oracle数据库的控制文件。


【北亚数据恢复】异常断电导致Oracle数据库报错(ORA-01110错误)且没有备份的数据恢复_数据库_02


【北亚数据恢复】异常断电导致Oracle数据库报错(ORA-01110错误)且没有备份的数据恢复_数据恢复_03


【北亚数据恢复】异常断电导致Oracle数据库报错(ORA-01110错误)且没有备份的数据恢复_数据恢复_04

3、北亚数据恢复工程师查询oracle数据库的归档日志,发现归档日志不连续,可供数据恢复使用的数据库归档日期丢失,北亚数据恢复工程师使用cancel参数进行不完全恢复。见下图所示。


【北亚数据恢复】异常断电导致Oracle数据库报错(ORA-01110错误)且没有备份的数据恢复_oracle数据库_05


【北亚数据恢复】异常断电导致Oracle数据库报错(ORA-01110错误)且没有备份的数据恢复_oracle数据库_06

4、再次执行alter database open 命令,将数据库打开。查询数据库实例状态,数据库报错内容发生改变,报错内容为:ora_00600错误。


【北亚数据恢复】异常断电导致Oracle数据库报错(ORA-01110错误)且没有备份的数据恢复_oracle数据库_07

5、北亚数据恢复工程师查询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.


6、使用北亚数据恢复中心自主研发的DBF解析工具,获取数据,获取数据结果可见下图:


【北亚数据恢复】异常断电导致Oracle数据库报错(ORA-01110错误)且没有备份的数据恢复_数据恢复_08

7、创建数据库,在数据库中创建用户,为用户分配表空间,解锁用户并授权。然后,通过数据的搭桥的方式,将解析到的用户对象迁移到数据库中。


8、使用exp或者expdp导出zxfg用户下的所有对象,本例采用exp导出数据,其命令如下:

exp system/abc  file=C:\test\dump\zxfg.dmp log=C:\test\dump\zxfg.log owner=zxfg

【北亚数据恢复】异常断电导致Oracle数据库报错(ORA-01110错误)且没有备份的数据恢复_oracle数据库_09

【北亚数据恢复】异常断电导致Oracle数据库报错(ORA-01110错误)且没有备份的数据恢复_oracle数据库_10

9、查询导出的数据库dmp文件及日志,确认oracle数据库数据恢复完整、正确。由管理员亲自对恢复成功的数据库数据进行验证,经验证确认数据恢复完整,本次数据恢复成功。