The ORA-00214 error causes
An ORA-00214 is issued whenever Oracle detects an inconsistency between two mirrored copies of the control file. All copies of the control file must have the same internal sequence number for Oracle to start up the database or shut it down in normal or immediate mode. If the database is running and the checkpoint in the file header could not be advanced the datafile will be taken offline.
Typical scenarios in which you may receive an ORA-00214 include:
1. You have restored the control file from backup, but forgot to copy it onto all of the mirrored copies of the control file as listed in the “CONTROL_FILES” parameter in the “init.ora” file for this instance (or config.ora in an ifile configuration).
2. You have moved one or more copies of the control file to a different location while the database was up and running.
3. You accidentally overwrote one of the copies of the control file with an old copy.
4. The database or the system crashed while the mirrored copies of the control file were being updated, causing them to be out of sync.
5. You are restoring a database backup that was improperly taken with the database up and running (“fuzzy” backup).
Example of ORA-00214 and How to Resolve it
One of the db was unable to mount cause of inconsistencies in the multiplexed controlfiles. It gave the below error during startup:
sql> startup ORACLE instance started. Total System Global Area 209715200 bytes Fixed Size 1295896 bytes Variable Size 146803176 bytes Database Buffers 54525952 bytes Redo Buffers 7090176 bytes ORA-00214: controlfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\CONTROL01.CTL' version 17404 inconsistent with file 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\CONTROL03.CTL' version 17409
Steps taken to resolve it:
1. Show parameter control_file
2. As from the above error it could been seen that the version
sql> alter system set control_files='D:\oracle\product\10.2.0\oradata\CONTROL03.CTL' scope=spfile; sql> shutdown immediate;
sql> startup mount; ---- The mount was successful. sql> alter database open;
3. Checked for any errors in the alert log file and found everything to be ok. Changed the control_files parameter, switched the logfile groups, and made the database down.
sql> alter system set control_files='D:\oracle\product\10.2.0\oradata\CONTROL01.CTL', 'D:\oracle\product\10.2.0\oradata\CONTROL02.CTL','D:\oracle\product\10.2.0\oradata\CONTROL03.CTL' scope=spfile;
sql> alter system switch logfile; sql> alter system switch logfile; sql> shutdown immediate;
4. Copied the CONTROL03.CTL made two copies of it and renamed it CONTROL01.CTL and CONTROL02.CTL and started up the database.
sql> startup ORACLE instance started. Total System Global Area 209715200 bytes Fixed Size 1295896 bytes Variable Size 146803176 bytes Database Buffers 54525952 bytes Redo Buffers 7090176 bytes Database mounted. Database opened.