成功案例

一例AIX小型机数据恢复及Oracle修复过程

2018-08-11 14:48:38
南方某省某市某政府部门一台IBM DS4700存储,5块300GB光纤磁盘做了RAID5,一块磁盘做了全局热备,因为3块磁盘离线造成RAID崩溃。
DS存储上划分了2个LUN,一个300GB,一个400GB,全部给一台AIX 5.3系统的P550A小型机使用。
两个LUN上分别有两个 Oracle 10.2.0.4 数据库,为该部门的核心数据。

3块磁盘有两块磁盘的盘片严重划伤,不可修复。一块磁盘少量坏道,数据较完整。
查看DS存储日志,发现严重划伤的磁盘都早已离线,数据本就不可用。
只需有坏道的磁盘就可以了。运气一向很好。

在Windows系统下通过光纤存储柜把剩下的4块磁盘进行镜像,镜像完成后分析DS存储RAID组织参数,虚拟重组RAID,把两个LUN镜像成文件。
后通过 iSCSI 方式把镜像文件挂载到 凌治数据恢复中心 内部的数据恢复的AIX小型机上,然后 mount 文件系统,一却正常:



经检查文件数据完整。开始在 凌治数据恢复中心 内部的IAIX小型机上挂载客户的 Oracle 数据库:
挂载 第一个数据库:





第一个数据库一却正常,做个导出也一却正常:


开始挂载第二个数据库:


oracle 报错,过不了 mount ,想都不用想这是 oracle  的控制文件损坏。
试过另两个控制文件,都不行 。
只得收集数据文件和联机日志文件信息,开始重建控制文件。
收集的信息发现,有个数据文件不在这个损坏的存储上,在另外的位置存储,联系客户,客户找到另一个数据文件 。

拿到另一个数据文件后,开始重控制文件:


创建控制文件失败, 客户找到那一个数据文件有问题,检查发现 这个数据文件的 Resetlogs SCN 远高于其它数据文件。
用WinHex 修改和 system01.dbf 这个数据文件的 Resetlogs SCN 一致,然后修正oracle的块校验,重新重建控制文件:



控制文件创建成功,尝试把库 open:


报需要介质恢复,加入隐含参数,再次 open 数据库:


终于看到熟悉的 ORA-600 [4193] 错误了,重建 undo ,   数据库一却正常:





进行导出,也一却正常:


沪公网安备 31010402007118号