联系我们 4000-77-43-77
Oracle数据库突然断电数据恢复
  • 2016-03-30

当我们在使用Oracle数据库时,突然断电,造成很多问题,致使旧数据丢失,影响了数据的正确性,破坏了数据库。此时,用户急切需求恢复数据。本文以此为例,讲述Oracle数据库数据恢复。

数据库因突然断电,数据库启库报system01.dbf需要更多的恢复来保持一致性,数据库无法打开;数据库没有备份,归档日志也不连续。客户提供了数据库的在线文件,急需恢复admin用户下的数据。

一、数据库的故障检测

利用DBV 命令检测数据文件的完整性

结果如下:

分析结果发现SYSAUX01.DBF文件数据块(Data)检测失败40页,索引页(Index)检测失败29页,说明SYSAUX01.DBF存在坏块。

结论:通过dbv对数据文件的完整性检验,SYSAUX01.DBF存在坏块,其他检测的文件完整。

二、 用客户的数据库本地挂起数据库,尝试修复数据库。

2.1 创建新的OS :windows server 2008 x86,安装oracle 11.2.0.1.0 for 32-bit

版本数据库,挂起数据库:

起库报ORA-01110错误,System01.dbf需要更多一致性恢复。使用recover database 命令,利用在线日志做介质恢复。数据库的控制文件已被修改,需要使用控制文件恢复数据库。

恢复数据库需要2016_03_19的11号归档日志。由于归档日志丢失,使用cancel参数进行不完全恢复。再次执行alter database open 命令,数据库打开。

2.2 查询实例状态,数据库报ora_00600错误;进行其他查询,其中一些查询可以进行,一些查询报错,而且报错都是ora_00600错误。

2.3 用expdp/exp工具导出数据库;

expdp 导出数据库报错,和上面查询报同样的错误。sysaux01.dbf文件损坏导致expdp工具不可用,导出数据库失败。尝试使用exp导出数据库。

2.3.2 使用exp导出数据库

exp导出数据库,和上面报同样的错误。数据库报严重的内部错误,导致导出工具exp不能使用,甚至一些查询都不能进行,导出数据库失败。

2.3.3解析数据文件,获取用户数据

由上可知,数据库的恢复已不可能。底层解析,解析数据文件,获取用户对象。

2.4查看警告日志 追踪文件查看内部错误代码;

警告日志部分内容如下:

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.

进行各种尝试 ,查阅大量资料。数据库的这种内部错误,不能通过命令修复。尝试导出数据库。

三、解析数据文件,获取用户数据

3.1 使用DBF解析工具的,获取数据。

3.2 迁移对象到数据库中

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

四、验证数据

五、导出数据,交付用户

用户验证数据后,全部正确,并表示非常满意。

【数据恢复温馨提示】
1、将电脑放置于固定桌面使用,硬盘运行时,避免意外晃动
2、出现故障后,切忌继续给硬盘通电,防止磁头划伤盘面,对数据造成不会恢复的损坏
3、出现故障后,切忌再次磕碰硬盘,防止盘片损坏
4、切忌自行打开硬盘更换磁头,开盘需要在无尘环境下进行,需要匹配的备件
5、定期对重要数据做好备份,数据常常在没有防备的前提下突然丢失!
6、目前很多小型数据恢复公司或者电脑维修商不具备开盘环境,却依然在提供开盘数据恢复服 务,这对客户的数据安全是不负责任的态度。开盘数据恢复的环境与技术 投入成本高昂,价格高于普通恢复,数百元即可进行开盘服务的公司不可能具备完善的无 尘环境和过硬的技术实力,客户应慎重选择开盘服务商,以免给数据造成不可挽回的损失

分享


 

甲驭科技优势

甲驭科技丰富实战经验!值得信赖!