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/EXATREE/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 EXATREE
srvctl start database -d EXATREE -o nomount
4. Restore controlfile to new location:
RMAN> restore controlfile from '+ORACLDG/EXATREE/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/EXATREE/CONTROLFILE/current.349.997455411
Finished restore at 13-JAN-19
5. restart the database:
srvctl stop database -d EXATREE
srvctl start database -d EXATREE
6. Check the control_file again:
SQL> show parameter control_files
NAME TYPE VALUE
------------------------------------ -------------------------------- ------------------------------
control_files string +DATA/EXATREE/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/exatree/control01.ctl
2. Set the new location of controfile:
SQL> alter system set control_files='/u03/oracle/exatree/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/exatree/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/exatree/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/exatree/control01.ctl
control_file DATABASEHOW TO