解决数据库实例启动ORA-00205或控制文件损坏错误
ORA-00205: error in identifying control file, check alert log for more info
翻译为:控制文件的错误,请检查警报日志中获得更多信息
通过:/opt/oracle/diag/rdbms/ora11g/ora11g/alert/log.xml文件中找出实例启动日志
里面会有如下信息:
<msg time='2011-11-10T09:55:51.643+08:00' org_id='oracle' comp_id='rdbms'
client_id='' type='UNKNOWN' level='16'
module='MMON_SLAVE' pid='13970'>
<txt>Errors in file /opt/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_m000_13970.trc:
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/opt/oracle/oradata/ora11g/control03.ctl'
ORA-27048: skgfifi: file header information is invalid
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/opt/oracle/oradata/ora11g/control02.ctl'
ORA-27048: skgfifi: file header information is invalid
</txt>
</msg>
里面有提示control02.ctl与control03.ctl两个控制文件错误
再找到/opt/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_m000_13970.trc跟踪文件
里面有如下信息:
kcidr_process_controlfile_error:
IO Check was called but no error was found
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/opt/oracle/oradata/ora11g/control03.ctl'
ORA-27048: skgfifi: file header information is invalid
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/opt/oracle/oradata/ora11g/control02.ctl'
ORA-27048: skgfifi: file header information is invalid
里面提示无法正常打开两个控制文件。
针对如上信息,可能是由于数据库的非正常关闭而导致控制文件被损坏。
可选择如下两种修改方式:
1、直接拷贝control01.ctl文件进行覆盖control02.ctl与control03.ctl文件
2、从其它正常的oracle环境中拷贝控制文件进行覆盖。
实例装载之后可通过“show parameter spfile;”查询出oracle加载的参数文件,我这里是spfileora11g.ora。
实例正常启动后,可通过“select * from v$controlfile;”查询这个视图,这里面的控制文件均与spfileora11g.ora中配置的控制文件内容一致。