top of page

Configuring Oracle Data Guard for Oracle RAC

  • Writer: AiTech
    AiTech
  • Jul 24, 2024
  • 2 min read

Configuring Oracle Data Guard for Oracle RAC involves several steps, including setting up the primary and standby databases. Here is a step-by-step guide to configure Oracle Data Guard for an Oracle RAC environment:


Prerequisites:


  1. Primary and Standby Database: Both should be configured in Oracle RAC.

  2. Oracle Version: Ensure both primary and standby are running the same Oracle version.

  3. Network Configuration: Proper network configuration and connectivity between primary and standby databases.

  4. Disk Space: Adequate disk space for datafiles, redo logs, and archived logs.


Steps to Configure Oracle Data Guard:


Step 1: Prepare the Primary Database


  1. Enable Force Logging:


    SQL> ALTER DATABASE FORCE LOGGING;

  2. Create a Password File (if not already created):


    $ orapwd file=$ORACLE_HOME/dbs/orapw<DB_UNIQUE_NAME> password=<password> entries=10

  3. Configure Initialization Parameters: Add the following parameters to the init.ora or spfile:


    SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(PRIMARY_DB,STANDBY_DB)'; SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PRIMARY_DB'; SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=STANDBY_DB LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=STANDBY_DB'; SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE; SQL> ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE; SQL> ALTER SYSTEM SET FAL_SERVER=STANDBY_DB; SQL> ALTER SYSTEM SET FAL_CLIENT=PRIMARY_DB; SQL> ALTER SYSTEM SET DB_FILE_NAME_CONVERT='STANDBY','PRIMARY'; SQL> ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='STANDBY','PRIMARY'; SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

  4. Create Standby Redo Logs:


    SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ('/path/to/redo04.log') SIZE 50M; SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 ('/path/to/redo05.log') SIZE 50M;


Step 2: Backup the Primary Database


  1. Take a Backup:


    $ rman TARGET / RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

  2. Create a Parameter File for Standby Database:


    SQL> CREATE PFILE='/path/to/initSTANDBY.ora' FROM SPFILE;

  3. Transfer Files to Standby: Transfer the backup files, parameter file, password file, and any necessary files to the standby server.


Step 3: Configure the Standby Database


  1. Create a Password File:


    $ orapwd file=$ORACLE_HOME/dbs/orapw<STANDBY_DB> password=<password> entries=10

  2. Create Required Directories:


    $ mkdir -p /path/to/oradata

  3. Edit the Parameter File: Modify the initSTANDBY.ora file to include the standby-specific parameters:


    .db_name='PRIMARY_DB' .db_unique_name='STANDBY_DB' .control_files='/path/to/control01.ctl','/path/to/control02.ctl' .fal_client='STANDBY_DB' .fal_server='PRIMARY_DB' .log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=STANDBY_DB' .log_archive_dest_2='SERVICE=PRIMARY_DB LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PRIMARY_DB' .db_file_name_convert='PRIMARY','STANDBY' .log_file_name_convert='PRIMARY','STANDBY' .standby_file_management='AUTO'

  4. Start the Standby Instance:


    $ sqlplus / as sysdba SQL> STARTUP NOMOUNT PFILE='/path/to/initSTANDBY.ora';

  5. Restore the Backup:


    $ rman TARGET / RMAN> RESTORE CONTROLFILE FROM '/path/to/backup/controlfile.ctl'; RMAN> ALTER DATABASE MOUNT; RMAN> RESTORE DATABASE; RMAN> RECOVER DATABASE;


Step 4: Enable Data Guard Broker (Optional but Recommended)


  1. Configure Data Guard Broker on Primary:


    $ dgmgrl SYS@PRIMARY_DB DGMGRL> CREATE CONFIGURATION 'DGConfig' AS PRIMARY DATABASE IS 'PRIMARY_DB' CONNECT IDENTIFIER IS 'PRIMARY_DB';

  2. Add Standby to Broker Configuration:


    DGMGRL> ADD DATABASE 'STANDBY_DB' AS CONNECT IDENTIFIER IS 'STANDBY_DB' MAINTAINED AS PHYSICAL;

  3. Enable Configuration:


    DGMGRL> ENABLE CONFIGURATION; DGMGRL> ENABLE DATABASE 'STANDBY_DB';


Step 5: Verify Data Guard Configuration


  1. Check Data Guard Status:


    SQL> SELECT DATABASE_ROLE, DB_UNIQUE_NAME FROM V$DATABASE;

  2. Verify Log Apply Services:


    SQL> SELECT THREAD#, SEQUENCE#, APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

  3. Test Switchover and Failover (Optional but Recommended):


    $ dgmgrl SYS@PRIMARY_DB DGMGRL> SWITCHOVER TO 'STANDBY_DB'; DGMGRL> SWITCHOVER TO 'PRIMARY_DB';


By following these steps, you will configure Oracle Data Guard for an Oracle RAC environment, ensuring high availability and disaster recovery for your database.


Recent Posts

See All

Comments


AiTech

©2023 by AiTech

bottom of page