Skip to content

How to Resolve ORA-00214: control file

  • by

ORA-00214

Tried to startup or mount a database, we got ORA-00214.

SQL> startup
ORACLE instance started.
...
ORA-00214: control file
'/u01/app/oracle/fast_recovery_area/ORCLCDB/control02.ctl' version 2286
inconsistent with file '/u01/app/oracle/oradata/ORCLCDB/control01.ctl' version
2248

Let's see its status.

SQL> select status from v$instance;

STATUS
------------
STARTED

The result STARTED might hardly to know the state of database, but we can still tell what state of database currently is by some means. It's at NOMOUNT now.

We tried to mount the database.

SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-00214: control file
'/u01/app/oracle/fast_recovery_area/ORCLCDB/control02.ctl' version 2286
inconsistent with file '/u01/app/oracle/oradata/ORCLCDB/control01.ctl' version
2248

OK, we saw the same ORA-00214 error message again.

In fact, ORA-00214 means that the progresses among multiplexed control files are different, you should make them consistent before mounting the database.

The phenomenon might be resulted from some incorrect operations by DBA. For example, accidentally restoring an older copy of control file to the destination.

Solutions

In this case, we should copy the newest control file and overwrite the old ones.

1. Backup All Control Files

We copied both files to another place in case that we mistake one for another, or any other irreversible incidents.

[oracle@test ~]$ cp -p /u01/app/oracle/oradata/ORCLCDB/control01.ctl /home/oracle/
[oracle@test ~]$ cp -p /u01/app/oracle/fast_recovery_area/ORCLCDB/control02.ctl /home/oracle/

2. Copy Newest Control File

In this case, we copied the newest control file with version 2286 and overwrite the old one with version 2248.

[oracle@test ~]$ cp -p /u01/app/oracle/fast_recovery_area/ORCLCDB/control02.ctl /u01/app/oracle/oradata/ORCLCDB/control01.ctl

If you have a more reliable backup, you may also consider to restore control file to the destination we specified in SPFILE.

3. Open Database

Since we have made control files consistent, we can open the database now. Here we take two steps to open the database from NOMOUNT.

SQL> alter database mount;

Database altered.

SQL> alter database open;

Database altered.

SQL> select status from v$instance;

STATUS
------------
OPEN

The database is back.

Leave a Reply

Your email address will not be published.