The control file contains critical database configuration information including the database name, data and redo file locations and names, tablespace definitions, and log and backup information. It is required for an instance to start up and cannot be edited directly. When data or redo files are added, renamed, or dropped, the control file is automatically updated to reflect the changes in physical database structure. The control file location and contents can be viewed using V$ views, and a new control file can be added by creating a parameter file from the server parameter file and editing the control file path before restarting the database.
DevEX - reference for building teams, processes, and platforms
Manage Oracle control files
1. Control file management
Every oracle database has a control file. A control file contains information about the associated
database that is required for access by an instance, both at startup and during normal operation.
Control file information can be modified only by oracle; no database administrator or user can edit a
control file.
Among other things, a control file contains information such as:--
• The database name.
• The timestamp of database creation.
• The names and locations of associated data files and redo log files.
• Table space information.
• Data file offline ranges.
• The log history.
• Archived log information.
• Backup set and backup piece information.
• Backup data file and redo log information.
• Data file copy information.
• The current log sequence number.
• Checkpoint information.
The database name and timestamp originate at database creation. The database name is taken from
either the name specified by the db_name initialization parameter or the name used in the create
database statement.
Each time that a data file or a redo log file is added to, renamed in, or dropped from the database, the
control file is updated to reflect this physical structure change.
These changes are recorded so that:
Oracle can identify the data files and redo log files to open during database startup. Oracle can identify
files that are required or available in case database recovery is necessary.
View: desc v$controlfile;
2. To see the location of control files:
Select name from v$controlfile;
To add a control file:
Sql>create pfile from spfile;
1. Shutdown the database gracefully.
2. Edit the init<sid>.ora file
3 Modify the control file parameter and add the location of the new file.
4. Copy the control file physically using ‘cp’ command.
$cd dev/control/
$cp control.ctl control2.ctl
Sql>create spfile from pfile;
Sql>startup
Cloning:
To backup control file:
Sql>Alter database backup controlfile to trace;
Sql>show parameter user_dump_dest
Sql>shutdown immediate
Sql>exit
$cd prod/udump
$ls –ltr
$vi “latest updated file.trc” #here file name is not latest updated file.
Copy the create controlfile script up to character set.
:q
$mkdir clone
$cd clone
3. $mkdir data log control udump cdump bdump adump arch
$cd
$vi createcontrol.ctl
Click on I to enter INSERT mode and then write click on your mouse.
Change the directory path from prod to clone.
Create controlfile set database “newsid” resetlogs archivelog
Logfile
Group 1’/data/oracle/clone/redolog01.log’ size 50M;
Group 2’/path’ size 50M;
Datafile
‘/data/oracle/clone/system.dbf’
‘/path/sysaux.dbf’
‘/path/undotbs.dbf’
‘/path/users.dbf’
:1,$s/prod/clone/gc
:wq
$cd
Copy the datafiles from prod/data to /home/oracle/clone/data
$cd prod/data
$cp -v *.dbf /home/oracle/clone/data/
Go to parameters file location $ORACLE_HOME/dbs
$cd $ORACLE_HOME/dbs
Copy the init parameter file to clone.
$cp initprod.ora initclone.ora
$vi initclone.ora
4. :1,$s/prod/clone/gc
:wq
$env |grep ORA
$export ORACLE_SID=clone
$env |grep ORA
$cd
$sqlplus / as sysdba
Sql>startup nomount;
Sql>@createcontrol.ctl
Sql>alter database open resetlogs;
Sql>recover database using backup controlfile; (online)