南方某省某市某政府部门一台IBM DS存储,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 , 数据库一却正常:
进行导出,也一却正常:
耗时一天,数据恢复成功。
成都千喜数据恢复中心的全系统(Win、Linux、AIX、HP-UX、 Solaris) Oracle(9i、10g、11g) 环境已搭建完成 ,全系统的DB2和 Sybase ASE 环境正在搭建中,对于数据恢复行业的人员测试和验证数据库完全免费。
转载请注明:成都千喜数据恢复中心 » AIX小型机Oracle数据库恢复一例