Customise Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorised as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyse the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customised advertisements based on the pages you visited previously and to analyse the effectiveness of the ad campaigns.

No cookies to display.

ORACLE DATABASE 19C – HOW TO ADD / MULTIPLEX CONTROL FILES

Breadcrumb Abstract Shape
Breadcrumb Abstract Shape
Breadcrumb Abstract Shape
Breadcrumb Abstract Shape
Breadcrumb Abstract Shape
Breadcrumb Abstract Shape
  • User AvatarKiran Dalvi
  • 21 Nov, 2021
  • 0 Comments
  • 2 Mins Read

ORACLE DATABASE 19C – HOW TO ADD / MULTIPLEX CONTROL FILES

ORACLE DATABASE 19C – HOW TO ADD / MULTIPLEX CONTROL FILES

PURPOSE:

– protect your Database in case of a disk failure
– reduce the risk of control file loss due to corruption or accidental removal
– as a DBA, it’s your responsibility to multiplex and backup control files to protect your organization in case of possible data loss due to media failure or control file corruption

ENVIRONMENT:

– Single instance database (we will cover ASM and RAC environment on future post)
– Database Name: testdb01
– Operating System: Oracle Linux 7.2

STEPS:

1. Connect to your Database

2. Make a list of all existing Control Files

1
2
3
4
5
6
7
8
9
10
11
12
13
SQL> SELECT name FROM v$controlfile;
NAME
———————————————————
/u01/app/oracle/oradata/testdb01/control01.ctl
/u01/app/oracle/fast_recovery_area/testdb01/control02.ctl
/u02/oradata/testdb01/control03.ctl
 
SQL> show parameter control_files
NAME TYPE VALUE
————– ——- ———————————————–
control_files string /u01/app/oracle/oradata/testdb01/control01.ctl,
/u01/app/oracle/fast_recovery_area/testdb01/control02.ctl,
/u02/oradata/testdb01/control03.ctl

3. Update the CONTROL_FILES parameter

– add the new location and control file name using ALTER SYSTEM SET CONTROL_FILES command
– set the SCOPE to SPFILE and not BOTH or MEMORY to prevent the database from attempting to look for the new file at this time
– you may want to create a pfile from spfile before doing this step so you have a backup of your initialization parameters

1
2
SQL> ALTER SYSTEM SET CONTROL_FILES='/data/app/oracle/oradata/PRIM/control01.ctl','/data/app/oracle/oradata/PRIM/control02.ctl','/data/app/oracle/oradata/PRIM/control03.ctl' SCOPE=spfile;
System altered.

4. Shutdown your Database

1
2
3
4
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

5. Copy one of the existing control files to the new location

1
[oracle@ol7]$ cp /u02/oradata/testdb01/control03.ctl /u03/oradata/testdb01/control04.ctl

6. Start your Database

1
2
3
4
5
6
7
8
9
SQL> startup
ORACLE instance started.
Total System Global Area 1610612736 bytes
Fixed Size 2924928 bytes
Variable Size 520097408 bytes
Database Buffers 1073741824 bytes
Redo Buffers 13848576 bytes
Database mounted.
Database opened.

7. Check your new list of Control Files

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SQL> SELECT name FROM v$controlfile;
NAME
———————————————————
/u01/app/oracle/oradata/testdb01/control01.ctl
/u01/app/oracle/fast_recovery_area/testdb01/control02.ctl
/u02/oradata/testdb01/control03.ctl
/u03/oradata/testdb01/control04.ctl
 
SQL> show parameter control_files
NAME TYPE VALUE
————– ——- ———————————————–
control_files string /u01/app/oracle/oradata/testdb01/control01.ctl,
/u01/app/oracle/fast_recovery_area/testdb01/control02.ctl,
/u02/oradata/testdb01/control03.ctl,
/u03/oradata/testdb01/control04.ctl

ADDITIONAL NOTES:

– Make sure that the new control file resides on a separate physical disk.
The purpose of multiple control files is to protect the database in case of a disk failure.
– Make sure that the new disk / location for your new control file exists.
– Make sure that Oracle user has permission to create the control file on the new location