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.