Showing results for 
Search instead for 
Did you mean: 

Oracle Control files

Go to solution
Mark Brook_3

Oracle Control files

We need to move our oracle control files to mirrored disks, currently on non-mirrored with the log files. I have no oracle experience so dont know what to do.

Reason is one of the disks the control files where on died, therefore the databases wouldnt come back.

Hope somebody can help.
Mark Brook_3

Re: Oracle Control files

What I should have also said is we are on version 8 of oracle and 11.00.

Indira Aramandla
Honored Contributor

Re: Oracle Control files

Hi Mark,

Is your database functioning fine now. From the baove I understand that you want to move your control files to the mirrored disks location. If your current database is functioning fine, then to move the control file location, you have to:-

1. Shutdown the database
2. Use OS commnad to move th control files from the current location to the target location.

3. edit the init.ora file and change the control file locations to reflect the new location.

4. Startup the database.

Indira A
Never give up, Keep Trying
Indira Aramandla
Honored Contributor

Re: Oracle Control files


it would be better if you multiplex the control files and they are expected to be placed in different disks.
Having multiple copies allows you to distribute them so that in the case where say one became inaccessible due to a failure, then the other remains as a baseline to recreate the other.

Here are few options when loss of control file.

You can verify the controlfile copies using:
SQL> select * from v$controlfile;

· If atleast one copy of the controlfile is not affected by the disk failure, When the database is shutdown cleanly:

(a) Copy a good copy of the controlfile to the missing location
(b) Start the database

Alternatively, remove the lost control file location specified in the init parameter control_files and start the database.

· If all copies of the controlfile are lost due to the disk failure, then:
Check for a backup controlfile. Backup controlfile is normally taken using either of the following commands:
(a) SQL> alter database backup controlfile to '/backup/control.ctl';
-- This would have created a binary backup of the current controlfile --

-->If the backup was done in binary format as mentioned above, restore the file to the lost controlfile locations using OS copying utilities.
--> SQL> startup mount;
--> SQL> recover database using backup controlfile;
--> SQL> alter database open;

(b) SQL> alter database backup controlfile to trace;
-- This would have created a readable trace file containing create controlfile script

--> Edit the trace file created (check user_dump_dest for the location) and retain the SQL commands alone. Save this to a file say cr_ctrl.sql
--> Run the script

SQL> @cr_ctrl

This would create the controlfile, recover database and open the database.

· If no copy of the controlfile or backup is available, then create a controlfile creation script using the datafile and redo log file information. Ensure that the file names are listed in the correct order as in FILE$.
Then the steps would be similar to the one followed with cr_ctrl.sql script.

Note that all controlfile related SQL maintenance operations are done in the database nomount state.

I attached a sample control file creation that was generated by the commnad alter database backup controlfile to trace.

I hope this helps


Never give up, Keep Trying
Honored Contributor

Re: Oracle Control files

hi mark,

IA's post should help you move your controlfiles accordingly.

You may also wish to consult the Oralce documentation for more clarifications:

kind regards
No person was ever honoured for what he received. Honour has been the reward for what he gave (clavin coolidge)