经过镜像操作后,在windows平台下使用winhex镜像的磁盘已经全部镜像完成,查看winhex生成的日志,发现在IBM storage manager/frombyte.com和硬盘SMART状态中均没有报错的1号盘也存在坏道,10号和13号盘均存在大量不规律的坏道分布,根据坏道列表定位到目标镜像文件分析发现该磁盘阵列中文件系统部分关键数据处于坏道区,于是转为通过6号硬盘的同条带xor手动修复。我们借助数据恢复软件将备份出来的raid中的所有数据展开,对ext3文件系统的逆向以及日志文件进行整理分析从而分析出raid磁盘阵列的盘序、raid块大小,raid的校验走向和校验方式等必要信息。
通过分析出来的raid信息虚拟重组raid磁盘阵列并接卸ext3文件系统提取数据库文件。在对数据库文件的提取过程中出现报错,数据库报告imp-0008错误,数据恢复工程师重新对raid结构进行分析,再一次进行dmp文件和dbf原始库文件进行提取,所有文件正常无报错。
数据库数据恢复流程
1.拷贝数据库文件到原数据库服务器,路径为/home/oracle/tmp/syntong.作为备份。在根目录下创建了一个oradata文件夹,并把备份的整个syntong文件夹拷贝到oradata目录下。然后更改oradata文件夹及其所有文件的属组和权限。
2.备份原数据库环境,包括ORACLE_HOME下product文件夹下的相关文件。配置监听,使用原机中的splplus连接到数据库。尝试启动数据库到nomount状态。进行基本状态查询后,了解到环境和参数文件没有问题。 尝试启动数据库到mount状态,进行状态查询没有问题。启动数据库到open状态。出现报错:
ORA-01122: database file 1 failed verification check/frombyte.com
ORA-01110: data file 1: ‘/oradata/syntong/system01.dbf‘
ORA-01207: file is more recent than control file - old control file
3.经过进一步的检测和分析,判断此故障为控制文件和数据文件信息不一致,这是一类因断电或突然关机等引起的常见故障。
4.对数据库文件进行逐个检测,检测到所有数据文件没有物理损毁。
5.在mount状态下,对控制文件进行备份,alter database backup controlfile to trace as ‘ /backup/controlfile‘;对备份的控制文件进行查看修改,取得其中的重建控制文件命令。把这些命令复制到一个新建脚本文件controlfile.sql中。
6.关闭数据库,删除/oradata/syntong/下的3个控制文件。 启动数据库到nomount状态,执行controlfile.sql 脚本。
SQL>startup nomount/frombyte.com
SQL>@controlfile.sql
7.重建控制文件完成后,直接启动数据库,报错,需要进一步处理。
SQL> alter database open;
alter database open/frombyte.com
*
ERROR at line 1:
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: ‘/free/oracle/oradata/orcl/system01.dbf‘
然后执行恢复命令:
recover database using backup controlfile until cancel;
Recovery of Online Redo Log: Thread 1 Group 1 Seq 22 Reading mem 0
Mem# 0 errs 0: /free/oracle/oradata/orcl/redo01.log
…
做介质恢复,直到返回报告,恢复完成。
8.尝试open数据库。
SQL> alter database open resetlogs;
9.数据库启动成功。把原来temp表空间的数据文件加入到对应的temp表空间中。
10.对数据库进行各种常规检查,没有任何错误。
11.进行emp备份。全库备份完成,没有报错。将应用程序连接到数据库,进行应用层面的数据验证。
原文地址:http://blog.51cto.com/sun510/2097530