Multiplexing in control_file is one of the best practices of oracle database setup. It means keeping control files in different mount point or disk groups , so that in case one mount points is inaccessible, control file can be accessed from the available mount point.
NOTE - > This activity needs downtime.
FOR MULTIPLEXING IN RAC - > STEPS FOR MULTIPLEXING IN ORACLE RAC
In this below DEMO, we will explain the steps for multiplexing control files.
DEMO:
1. Check current control files:
SQL> select name from gv$controlfile
2 ;
NAME
--------------------------------------------------------------------------------
/dmdata02/oradata/BSDMSIT2/control01.ctl
/dmdata02/oradata/BSDMSIT2/control02.ctl
/dmdata07/oradata/control03.ctl
SQL> show parameter control_file
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_files string /dmdata02/oradata/BSDMSIT2/con
trol01.ctl, /dmdata02/oradata/
BSDMSIT2/control02.ctl
Create a directory in the new mount point, where we will keep the new control file.
mkdir -p /dmdata07/oradata
2. update the control_files parameter by adding the new path also
SQL> alter system set control_files='/dmdata02/oradata/BSDMSIT2/control01.ctl','/dmdata02/oradata/BSDMSIT2/control02.ctl','/dmdata07/oradata/control03.ctl' scope=spfile;
System altered.
3. Shutdown the database and start with nomount:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup nomount
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE instance started.
Total System Global Area 8388608000 bytes
Fixed Size 5303664 bytes
Variable Size 3623879312 bytes
Database Buffers 4747952128 bytes
Redo Buffers 11472896 bytes
SQL> exit
4. restore the controlfile from existing control file .
$ rman target /
Recovery Manager: Release 12.1.0.2.0 - Production on Mon Feb 24 08:50:19 2020
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
connected to target database: BSDMSIT2 (not mounted)
RMAN> restore controlfile from '/dmdata02/oradata/BSDMSIT2/control01.ctl';
Starting restore at 24-FEB-20
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1058 device type=DISK
channel ORA_DISK_1: copied control file copy
output file name=/dmdata02/oradata/BSDMSIT2/control01.ctl
output file name=/dmdata02/oradata/BSDMSIT2/control02.ctl
output file name=/dmdata07/oradata/control03.ctl
Finished restore at 24-FEB-20
RMAN> exit
5. Restart the database:
SQL> shutdown immediate;
startup
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE instance started.
Total System Global Area 8388608000 bytes
Fixed Size 5303664 bytes
Variable Size 3623879312 bytes
Database Buffers 4747952128 bytes
Redo Buffers 11472896 bytes
Database mounted.
Database opened.
6. Check whether new control file is available or not :
SQL> show parameter control_files
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /dmdata02/oradata/BSDMSIT2/con
trol01.ctl, /dmdata02/oradata/
BSDMSIT2/control02.ctl, /dmdat
a07/oradata/control03.ctl
NUMBER
SQL> select name from gv$controlfile;
NAME
--------------------------------------------------------------------------------
/dmdata02/oradata/BSDMSIT2/control01.ctl
/dmdata02/oradata/BSDMSIT2/control02.ctl
/dmdata07/oradata/control03.ctl
We can observe controlfile is available now on all 3 locations.
control_filedatabase DATABASEHOW TO