Search notes:

Oracle control files

Every Oracle database needs a control file.
The controlfile is a small binary file that stores some important characteristics of the database: Additionally, RMAN uses the control file to store a history of backup metadata.
The control file is created by the create database statement.
(Multiplexed) copies of the control file might be stored in the fast recovery area.

Purpose

The control file contains the necessary information to open a database such as the location of data files and redo log files)
Thus, when an instance is started up, it first goes through a phase when the control files are opened but the database is still closed.
A control file also contains the information that is required to recover a database (such as checkpoints).

Default location of control files

The default location for control files can be found with
select
   default_value
from
   v$parameter
where
   name = 'control_files';

Dictionary views

Some dictionary views that are related to control files are:
v$database This view displays some (most, all?) of the information that is stored in the control file.
v$controlfile Shows the physical location of the control files.
v$controlfile_record_section Shows the sections that are stored in a control file.
v$parameter select value from v$parameter where name = 'control_files' to get the locations of the control files as specified with the control_files init parameter.

RMAN commands

Oracle recommends to turn on autobackup on for control files:
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to 'controlfile_%f';
restore controlfile from autobackup;

Dumping the contents of a control file to a trace file

The entries of a control file can be dumped to a trace file by setting the following event:
alter session set events 'immediate trace name controlf level 10';
Alternatively, it can also be dumped with oradebug dump controlf.

See also

Oracle files
v$controlfile
This kind of control files is not the same thing as the control files needed by SQL*Loader.
x$kcccf

Index