数据库数据恢复流程
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.comORA-01110: data file 1: '/oradata/syntong/system01.dbf'ORA-01207: file is more recent than control file - old control file3.经过进一步的检测和分析,判断此故障为控制文件和数据文件信息不一致,这是一类因断电或突然关机等引起的常见故障。
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.comSQL>@controlfile.sql7.重建控制文件完成后,直接启动数据库,报错,需要进一步处理。
SQL> alter database open;alter database open/frombyte.com*ERROR at line 1:ORA-01113: file 1 needs media recoveryORA-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 0Mem# 0 errs 0: /free/oracle/oradata/orcl/redo01.log…做介质恢复,直到返回报告,恢复完成。
8.尝试open数据库。
SQL> alter database open resetlogs;
9.数据库启动成功。把原来temp表空间的数据文件加入到对应的temp表空间中。
10.对数据库进行各种常规检查,没有任何错误。
11.进行emp备份。全库备份完成,没有报错。将应用程序连接到数据库,进行应用层面的数据验证。