存储迁移之后, 数据库通过集群启动时,报错
SUCCESS: diskgroup NEWDATA was mounted
ORA-00210: cannot open the specified control file
ORA-00202: control file: '+NEWDATA/test/controlfile/control02.ctl'
ORA-17503: ksfdopn:2 Failed to open file +NEWDATA/test/controlfile/control02.ctl
ORA-15173: entry 'control02.ctl' does not exist in directory 'controlfile'
ORA-00210: cannot open the specified control file
ORA-00202: control file: '+NEWDATA/test/controlfile/control01.ctl'
ORA-17503: ksfdopn:2 Failed to open file +NEWDATA/test/controlfile/control01.ctl
ORA-15173: entry 'control01.ctl' does not exist in directory 'controlfile'
ORA-205 signalled during: ALTER DATABASE MOUNT...
但是手动启动并没有问题
Starting up ORACLE RDBMS Version: 11.1.0.7.0.
Using parameter settings in server-side pfile /oracle/product/11/db/dbs/inittest1.ora
System parameters with non-default values:
....
检查数据库告警日志发现, 集群启动时,使用的是spfile文件:
Starting up ORACLE RDBMS Version: 11.1.0.7.0.
Using parameter settings in server-side spfile +GROUP1/test/spfiletest.ora
System parameters with non-default values:
但是旧的spfile参数文件的controlfile参数并没有指向正确的controlfile文件位置:
control_files = "+NEWDATA/test/controlfile/control01.ctl"
control_files = "+NEWDATA/test/controlfile/control02.ctl"
正确的:
control_files = "+NEWDATA/test/controlfile/control01.ctl.399.1000116879"
control_files = "+NEWDATA/test/controlfile/control02.ctl.400.1000116887"
解决方法:
srvctl modify database -d test -p +NEWDATA/test/spfilespfiletest.ora
修改OCR中注册的spfile。其实这一步,应该在存储迁移的时候完成,但是,迁移的时候忽略了这一步。
在此记录,防止以后再犯此类错误