5. 在mount状态下,对控制文件进行备份,alter database backupcontrolfile to trace as ' /backup/controlfile';对备份的控制文件进行查看修改,取得其中的重建控制文件命令。把这些命令复制到一个新建脚本文件controlfile.sql中。
6. 关闭数据库,删除/oradata/syntong/下的3个控制文件。 启动数据库到nomount状态,执行controlfile.sql 脚本。
SQL>startupnomount
SQL>@controlfile.sql
7. 重建控制文件完成后,直接启动数据库,报错,需要进一步处理。
SQL> alterdatabase open;
alter database open
*
ERROR at line 1:
ORA-01113: file 1needs media recovery
ORA-01110: data file1: '/free/oracle/oradata/orcl/system01.dbf'
然后执行恢复命令:
recover databaseusing backup controlfile until cancel;
Recovery of OnlineRedo Log: Thread 1 Group 1 Seq 22 Reading mem 0
Mem# 0 errs 0:/free/oracle/oradata/orcl/redo01.log
…
做介质恢复,直到返回报告,恢复完成。
8. 尝试open数据库。
SQL> alterdatabase open resetlogs;
9. 数据库启动成功。把原来temp表空间的数据文件加入到对应的temp表空间中。
10. 对数据库进行各种常规检查,没有任何错误。
11. 进行emp备份。全库备份完成,没有报错。将应用程序连接到数据库,进行应用层面的数据验证。
数据验证结束,数据库修复完成,数据恢复成功。