Oracle Control Files and Recovery

A control file is a small binary file that describes the structure of the database. It must be available for writing by the Oracle server whenever the database is mounted or opened. Without this file, the database cannot be mounted, and recovery or re-creation of the control file is required.


Your database must have a minimum of two control files (the default of three is preferred) on different disks to minimize the impact of a loss of one control file.

If your database is created with the Database Configuration Assistant (DBCA) using Oracle Managed Files (OMF), you have two control files. If you do not use OMF, there are three control files.

The loss of a single control file causes the instance to fail because all control files must be available at all times. However, recovery is a simple matter of copying one of the other control files. The loss of all control files is slightly more difficult to recover from but is not usually catastrophic.

Adding a Control File
In an OMF database, all control files must be re-created (so the following steps do not apply).
In other databases, adding a control file is a manual operation:

Alter the SPFILE with the following command:
1.       ALTER SYSTEM SET control_files = '/u01/app/oracle/oradata/orcl/control01.ctl' , '/u01/app/oracle/oradata/orcl/control02.ctl' , '/u01/app/oracle/oradata/orcl/control03.ctl' SCOPE=SPFILE;
2.       Shut down the database.
3.       Use the operating system to copy an existing control file to the location you select for your new file.
4.       Open the database.


Loss of a Control File
Recovering from the loss of a control file (if at least one control file remains) can be accomplished by performing the following steps:

1.  If the instance has not already failed, shut it down by using SHUTDOWN ABORT.
2.  Copy one of the remaining control files to the missing file’s location. If the media failure is due to the loss of a disk drive or controller, copy one of the remaining control files to some other location and update the instance’s parameter file to point to the new location. Alternatively, you can delete the reference to the missing control file from the initialization parameter file. Remember that Oracle recommends having at least two control files at all times.
3.  Start the instance.