Below are steps to move or rename controlfile to a new location(Mount point or diskgroup).
In ORACLE RAC:(Move from +ORACLDG diskgroup to +DATA diskgroup)
1. Get the current control_file location
SQL> show parameter control_files NAME TYPE VALUE ------------------------------------ -------------------------------- ------------------------------ control_files string +ORACLDG/DBACLASS/CONTROLFILE/control01.ctl
2. Set the new location of controlfile:
SQL> alter system set control_files='+DATA' scope=spfile; System altered.
3. start the database in nomount stage:
srvctl stop database -d DBACLASS srvctl start database -d DBACLASS -o nomount
4. Restore controlfile to new location:
RMAN> restore controlfile from '+ORACLDG/DBACLASS/CONTROLFILE/control01.ctl'; Starting restore at 13-JAN-19 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=2201 device type=DISK channel ORA_DISK_1: copied control file copy output file name=+DATA/DBACLASS/CONTROLFILE/current.349.997455411 Finished restore at 13-JAN-19
5. restart the database:
srvctl stop database -d DBACLASS srvctl start database -d DBACLASS
6. Check the control_file again:
SQL> show parameter control_files NAME TYPE VALUE ------------------------------------ -------------------------------- ------------------------------ control_files string +DATA/DBACLASS/CONTROLFILE/curren t.349.997455411
FOR STANDALONE DB(SINGLE INSTANCE DB):
Follow below steps if controlfile resides inside file system(Move from /u01 mount point to /u03 )
1. Get the current control_file location
SQL> show parameter control_files NAME TYPE VALUE ------------------------------------ -------------------------------- ------------------------------ control_files string /u01/oracle/dbaclass/control01.ctl
2. Set the new location of controfile:
SQL> alter system set control_files='/u03/oracle/dbaclass/control01.ctl' scope=spfile; System altered.
3. start the database in nomount stage:
shutdown immediate; startup nomount
4. Restore controlfile to new location:
RMAN> restore controlfile from '/u01/oracle/dbaclass/control01.ctl'; Starting restore at 13-JAN-19 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=2201 device type=DISK channel ORA_DISK_1: copied control file copy output file name=/u03/oracle/dbaclass/control01.ctl Finished restore at 13-JAN-19
5. restart the database:
alter database mount; alter database open;
6. Check the control_file again:
SQL> show parameter control_files NAME TYPE VALUE ------------------------------------ -------------------------------- ------------------------------ control_files string /u03/oracle/dbaclass/control01.ctl