Adding additional controlfiles (multiplexing) in Oracle using ASM

Posted by Jamie on May 12, 2009

When creating a database using ASM, the Oracle database creation assistant, ordbca, has an annoying tendency to only create one controlfile by default.  This is unequivocally a bad idea for any database that contains meaningful data, therefore it is necessary to add additional controlfiles.  Before ASM, you could shutdown the db, copy the controlfile on the OS level and modify the control_files parameter to add additional controlfiles.  If you use ASM, the operation is not that simple anymore, you need to use RMAN to perform the copy.  Here’s how I did it on my RAC database ( on ASM (Note: check your ASM locations – this is only an example) :

Stop the database and make sure that no instance has mounted the controlfile:

srvctl stop database -d db1

Now, log onto the database, start it in nomount mode and set the control_files parameter:              

sqlplus / as sysdba              
startup nomount             
alter system set control_files = +DATA/db1/controlfile/current_controlfile_1.ctl','+DATA/db1/controlfile/current_controlfile_2.ctl'
scope = spfile sid = '*';

Next, log into RMAN and copy the controlfiles to the new destination:              

rman target=/              
restore controlfile to '+DATA/db1/controlfile/current_controlfile_1.ctl'
from '+DATA/db1/controlfile/Current.controlfile.260.3462344';                          
restore controlfile to '+DATA/db1/controlfile/current_controlfile_2.ctl' from

Finally,  shutdown and startup the database:              

sqlplus / as sysdba              
shutdown immediate              
srvctl start database -d db1

The database should start up using your new controlfiles.  You can use ASMCMD to delete the old controlfile once everything is verified to be working with the new controlfiles.


Use this link to trackback from your own site.


Leave a response