<txt>ORA-00210: cannot open the specified control file
ORA-00202: control file: '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/ora_control02.ctl'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/ora_control01.ctl'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
</txt>
上面是log.xml的最近的部分
<txt>ORA-00210: cannot open the specified control file
ORA-00202: control file: '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/ora_control2'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/ora_control1'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
</txt>
上面是稍远的部分
控制文件的语句是
CREATE CONTROLFILE REUSE DATABASE "SOLODB" NORESETLOGS ARCHIVELOG
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 226
LOGFILE
GROUP 1 \'/u01/app/oracle/oradata/SOLODB/onlinelog/o1_mf_1_gfnh7mp2_.log\' SIZE 50M,
GROUP 2 \'/u01/app/oracle/oradata/SOLODB/onlinelog/o1_mf_2_gfnh7mwk_.log\' SIZE 50M,
GROUP 3 \'/u01/app/oracle/oradata/SOLODB/onlinelog/o1_mf_3_gfnh7n2o_.log\' SIZE 50M
DATAFILE
\'/u01/app/oracle/oradata/SOLODB/datafile/o1_mf_users_gfnh6mqq_.dbf\',
\'/u01/app/oracle/oradata/SOLODB/datafile/o1_mf_undotbs1_gfnh6mqf_.dbf\',
\'/u01/app/oracle/oradata/SOLODB/datafile/o1_mf_temp_gfnh7o0q_.tmp\',
\'/u01/app/oracle/oradata/SOLODB/datafile/o1_mf_system_gfnh6mpy_.dbf\',
\'/u01/app/oracle/oradata/SOLODB/datafile/o1_mf_sysaux_gfnh6mqd_.dbf\',
\'/u01/app/oracle/oradata/SOLODB/datafile/o1_mf_example_gfnh7op1_.dbf\'
CHARACTER SET US7ASCII
;
解决办法:实际上要重建控制文件,但是一直报上面的错误。实际上从log.xml的报错看,因为control_files是错的,所以数据库根本起不来。如果一开始control_files的是正确的,实际不需要重建控制文件。
最后发现是自己设置control_files参数的时候,值写错了。
正确的是
*.control_files='/u01/app/oracle/oradata/PROD1/controlfile/o1_mf_bpy15704_.ctl','/u01/app/oracle/flash_recovery_area/PROD1/controlfile/o1_mf_bpy15799_.ctl'
错误的是
*.control_files='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/ora_control01.ctl,/u01/app/oracle/product/11.2.0/dbhome_1/dbs/ora_control02.ctl'
但是修改为正确的格式仍然无法创建控制文件,最后连路径也模仿正确的格式,才创建成功。
创建成功后,create pfile from spfile;recover database;
这两步很有必要。