错误信息

【汉】ORA-00205:识别控制文件时出错,有关详细信息,请查看警报日志

【英】ORA-00205:error in identifying control file, check alert log for more info

在正常启动实例时报错,并且实例仅启动到NOMOUNT状态。

ORA-00205:识别控制文件时出错,有关详细信息,请查看警报日志_ORA-00205

版本

Oracle 【11.2.0.3.0】、【11.2.0.4.0】

原因

数据库启动在从nomount到mount的转变时,会先读取控制文件。如果操作系统中控制文件丢失,则数据库会在alert log(警告文件)中给出丢失信息。

无论是oradata目录下的control01.ctl丢失,还是fast_recovery_area目录下的control02.ctl丢失,数据库都会抛出该问题。

解决方法

1、排查

遇到此问题时,需要先看一下alert log文件中抛出的问题,确定是哪个控制文件丢失。

# 进入alert log目录
[oracle@localhost ~]$ cd $ORACLE_BASE/diag/rdbms/orcl/orcl/trace
# 查看信息
[oracle@localhost trace]$ vim alert_orcl.log

ORA-00205:识别控制文件时出错,有关详细信息,请查看警报日志_ORA-00205_02

从上图可以看出是/home/oracle/fast_recovery_area/orcl/control02.ctl文件丢失导致的无法启动实例。

2、解决

解决需要分两种情况来说,一种是oradata目录下的control01.ctl或者fast_recovery_area目录下的control02.ctl丢失,另一种是这两个文件同时丢失的情况。

仅丢失一个控制文件

丢失某个控制文件,直接复制另一个控制文件并重命名即可。

# 进入数据文件目录
[oracle@localhost ~]$ cd $ORACLE_BASE/oradata/orcl
# 复制控制文件到fast_recovery_area目录中
[oracle@localhost orcl]$ cp control01.ctl /home/oracle/fast_recovery_area/orcl/control02.ctl
# 进入sqlplus命令窗口
[oracle@localhost orcl]$ sqlplus / as sysdba
# 打开数据库
SQL> alter database open;

丢失两个控制文件

两个控制文件都丢失的话,只能重建控制文件。重建控制文件比较复杂,暂时不记录,待后面有时间再补充。