使用当前副本恢复控制文件
本节介绍可以从当前备份或多路复制副本中恢复控制文件的方法。
使用控制文件副本从控制文件损坏中恢复
此过程假定CONTROL_FILES参数中指定的控制文件之一已损坏,控制文件目录仍然可以访问,并且您拥有控制文件的复用副本。
- 在实例关闭的情况下,使用操作系统命令以良好的副本覆盖错误的控制文件:
cp /u03/oracle/prod/control03.ctl /u02/oracle/prod/control02.ctl
- 启动SQL * Plus并打开数据库
SQL> STARTUP
使用控制文件复制从永久介质故障中恢复
此过程假定CONTROL_FILES参数中指定的其中一个控制文件由于永久介质故障而无法访问,并且您拥有控制文件的多路复制副本。
- 在实例关闭的情况下,使用操作系统命令将控制文件的当前副本复制到新的可访问位置:
% cp /u01/oracle/prod/control01.ctl /u04/oracle/prod/control03.ctl
- 编辑初始化参数文件中的CONTROL_FILES参数,以将错误位置替换为新位置:
CONTROL_FILES = (/u01/oracle/prod/control01.ctl, /u02/oracle/prod/control02.ctl, /u04/oracle/prod/control03.ctl)
- 启动SQL * Plus并打开数据库:
SQL> STARTUP
如果您有多路复用的控制文件,可以通过编辑CONTROL_FILES初始化参数快速启动数据库。从CONTROL_FILES设置中删除错误的控制文件,您可以立即重新启动数据库。然后,您可以执行坏控制文件的重建,并在稍后关闭并在编辑CONTROL_FILES初始化参数以包含恢复的控制文件后重新启动数据库。
参考资料
https://docs.oracle.com/cd/E11882_01/server.112/e25494/control.htm#ADMIN11297