Oracle数据库文件坏块损坏的恢复方法

简介:

故障描述

  打开oracle数据库报错 “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。经检测数据库文件发现sysaux01.dbf有坏块,sysaux01.dbf文件损坏。数据库没有备份,不能通过备份去恢复数据库。现急需恢复zxfg用户下的数据。

故障分析

  “system01.dbf需要更多的恢复来保持一致性”,可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。对数据库文件进一步检测、分析,结果sysaux01.dbf文件有坏块。修复数并启动数据库后,许多查询报错,export和 data pump工具不能使用,查询告警日志,分析报错,由于sysaux文件损坏,导致发生上诉错误。从数据库层面不能修复数据库。system和用户表空间的数据文件都是正常的,可以利用底层解析数据文件,恢复用户数据。

  检测与恢复1 利用DBV 检测数据文件

3af6fcf5af214e79818e00beb53f4b79_th.png

  分析结果发现SYSAUX01.DBF文件数据块(Data)检测失败40页,索引页(Index)检测失败29页,其他文件检测正常。

  2 修复数据库,打开数据库

b0b1cac99767410faf9dea7d45a1eae7_th.png

49f14c157d174bdaa2b2707d632d7788_th.png

  3 查询数据库报错,export 和data pump报错

d9562f07666b4043be97ea7c70464892_th.png

eaaef90a8c1a41eb88a0dc9b523afab5_th.png

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

  4底层解析,将ZXFG用户的数据导入到新的数据库中

2d134f137db348b592516ee860e5336b_th.png

19be46de724f4514909c0e1f43f2bdbb_th.png

  四、结果

  底层解析数据库文件,将zxfg用户的数据导入到新的数据库中,恢复100%的数据。










本文转自 宋国建 51CTO博客,原文链接:http://blog.51cto.com/sun510/1889312,如需转载请自行联系原作者
目录
相关文章
|
11月前
|
Oracle 关系型数据库 数据库
自动从备库修复主库的坏块
数据库的坏块经常是一件非常棘手的事情,Oracle数据库从11.2后,使用 Active Data Guard option 时,主库和备库可以自动借用对方的block来修复自身的坏块,这个过程对应用是透明的。
|
Oracle 关系型数据库 数据库

推荐镜像

更多