1.
Introduction
Oracle Data Guard is Oracle’s enterprise-level disaster
recovery and high availability (HA) solution. It provides real-time data
protection, automated failover/switchover capabilities, and efficient
replication between primary and standby databases.
In modern enterprise environments, where business continuity
is critical, implementing Data Guard between a highly available 2-Node RAC (Real Application Clusters)
primary and a standalone physical
standby ensures:
•
High
Availability (HA)
•
Disaster
Recovery (DR)
•
Zero/Minimal
Data Loss
•
Automatic
log transport and apply
•
Seamless
role transitions
This document explains the complete end-to-end implementation of Oracle Data Guard and Data
Guard Broker between:
•
A 2-node RAC Primary
CDB running on ASM
•
A Standalone Physical
Standby CDB running on ASM
This guide includes environment details, prerequisites,
configurations, duplicate process, redo apply, verification, and broker setup.
2. Architecture Overview
2.1 Primary (RAC) Configuration
|
Component
|
Details
|
|
Nodes |
node1, node2 |
|
Cluster |
Oracle Grid Infrastructure |
|
Database |
Container Database (CDB): prod |
|
Instances |
prod1, prod2 |
|
PDB |
prods |
|
DB Unique Name |
PROD |
|
Storage |
ASM (+DATA, +RECO, +OCRVD) |
|
Role |
Primary |
|
Version |
Oracle 19.16 |
|
SCAN |
rac-scan.localdomain |
2.2 Standby (Standalone) Configuration
|
Component
|
Details
|
|
Server |
standby.localdomain |
|
Database |
Container Database (CDB): prod |
|
PDB |
prods |
|
Instance |
prod |
|
DB Unique Name |
PRODSTBY |
|
Storage |
ASM (+DATA, +RECO) |
|
Role |
Physical Standby |
|
Version |
Oracle 19.16 |
3.
Objectives of This Implementation
•
Configure a Physical
Standby Database for a 2-Node RAC primary.
•
Enable real-time redo
transport & apply.
•
Ensure Data Guard
health and synchronization.
•
Implement Data Guard
Broker for simplified management.
•
Test and document Switchover
and Failover readiness.
•
Ensure PDB-level
replication in a CDB environment.
4. Prerequisites
4.1 Database & OS
Requirements
•
Identical Oracle version (19.16) on both servers.
•
ASM disk groups available on primary and standby.
•
Sufficient network connectivity (ports 1521 open).
4.2 Configuration Requirements
•
Primary in ARCHIVELOG
and FORCE LOGGING mode.
•
Oracle Password File copied to standby.
•
tnsnames.ora and listener.ora configured correctly.
•
DG-related initialization parameters set.
•
SRLs (Standby Redo Logs) added on PRIMARY.
5. Primary Database Configuration
5.1 Make sure primary is in archivelog mode :
5.2
Check FORCE LOGGING is enabled :
6 Initialization Parameters
6.1 Set
Primary Database Initialization Parameters :
6.2 Add Standby Redo Logs (SRL)
For RAC (2 threads), SRLs created:
Thread 1: Groups 5, 6, 7
Thread 2: Groups 8, 9, 10
7. Network Configuration
7.1 Update /etc/hosts on all servers
Includes:
- Public IPs
- VIPs
- SCAN IPs
- Standby IP
Node1 :
Node 2:
Standby :
7.2 tnsnames.ora
Node1 :
Node 2:
Standby :
7.3 listener.ora
Proper global names and SID entries configured.
Node1 :
Node2 :
Standby :
7.3 checking connectivity
Node 1 :
Node 2:
Standby :
8. Password File & Initialization File Setup
Copy Password File from ASM and ORACLE_HOME/dbs
Create PFILE and Copy
9. Creating the Standby Database
9.1 Start Standby NOMOUNT
9.2 RMAN Duplicate Command
RMAN will:
✔ Create Controlfile
✔ Create Datafiles (OMF)
✔ Restore DB
✔ Recover DB
✔ Mount Standby
10. Start Redo Apply
11. Verification
11.1 PRODUCTION side: Primary RAC (prod)
11.2 DR side:standby standalone (prod)
11.3 Check Lag
All values confirmed synchronized.
11.4 Real-Time Log Apply Verification by Manual Log Switch
To verify that the physical standby database is receiving redo in real
time and applying it correctly, we manually force a log switch on the primary
database. This sends a new archived log to the standby, and the Managed
Recovery Process (MRP) should immediately begin applying it.
Primary
>Force Redo Log Switch on Primary
>Check Latest Archive Log Sequence on Primary
Standby
>Verify Redo Reception on Standby
12. Data Guard Broker Configuration
12.1 Enable Broker on Both DBs Primary
Standby
12.2 Removing MRP Before Data Guard
Broker Configuration
Before
configuring Data Guard Broker, it is important to stop the Managed Recovery Process (MRP) on the standby database.
MRP is
responsible for applying redo logs, but when active, it can interfere with
Broker operations such as:
•
enabling the Data Guard configuration
•
adding the standby database to the broker
•
performing switchover/failover
•
reading the correct database state information
Data Guard
Broker automatically manages redo apply, so it must take full control.
Therefore, MRP must be stopped manually before
enabling DG Broker.
12.3 Create DG Configuration
########### NOTE ###############
When using Broker, manual redo routes (SERVICE=…) must be
removed.
Broker will automatically create:
LOG_ARCHIVE_DEST_2 on Primary to Standby
LOG_ARCHIVE_DEST_2 on Standby back to Primary
This allows:
Automatic failover
Switchover
Health checks
Automatic redo routing after role transitions
If manual SERVICE=… exists, the broker does NOT take control
— this creates the ORA16698 conflict.
PRIMARY :
Standby :
![]()
Begin Data Guard Broker Configuration
12.4 Verify
13. Switchover Operation in Data Guard
Broker
A Switchover is a
planned role reversal between the Primary
and the Standby database, performed
when both databases are healthy.
It is a zero data loss
operation and is typically done for:
•
maintenance activities on the primary
•
testing the disaster recovery (DR) site
•
validating Data Guard configuration
•
planned failover simulations
During a switchover:
•
The Primary
becomes a Standby
•
The Standby
becomes the new Primary
•
Redo transport and apply automatically reverse directions
•
Data Guard Broker handles all internal steps
Switchover is safe,
fast, and fully reversible as long as both databases are synchronized.
13.1 Prerequisites Before Performing Switchover
Ensure the following:
1. Data Guard
Broker Configuration Status = SUCCESS
2. Both
databases have no apply/transport lag
13.2 Execute the Switchover Using DGMGRL
Step 1:
Login to DGMGRL
Step
2: Perform the Switchover During switchover:
•
Broker stops redo apply
•
Converts the standby database to primary
•
Converts the original primary to standby
•
Starts redo apply on the new standby
13.3 Post-Switchover Verification
Check
configuration status
The Data Guard Broker configuration (PROD_DG) shows STATUS =
SUCCESS, confirming that both the
primary database (PRODSTBY) and the physical standby database (PROD) are
healthy, synchronized, and communicating properly. The configuration is
operating in Maximum Performance mode, with no transport or apply issues. This
validates that the switchover was
successful and the Data Guard environment is functioning normally.
Verify new database roles
On new
primary (PRODSTBY):
On new
standby (PROD):
13.4 Benefits of Performing a Switchover
•
Zero data loss (safe operation)
•
Validates HA/DR readiness
•
Confirms Data Guard health
•
Used for patching or maintenance
•
Ensures both sites are operational and synchronized
14. Final Status Summary
|
Item
|
Status
|
|
Primary DB |
PROD (RAC), OPEN |
|
Standby DB |
PRODSTBY (Standalone), APPLYING LOGS |
|
Data Guard |
ACTIVE, SYNCHRONIZED |
|
Log Transport |
WORKING |
|
Broker |
ENABLED & HEALTHY |
|
PDBs |
Successfully replicated |
15. Conclusion
This
implementation successfully establishes a robust
disaster recovery environment using Oracle Data Guard between a highly
available 2-node RAC primary and a standalone ASM-based physical standby.
With Data Guard
Broker, database role transitions become easier, faster, and automated,
ensuring maximum uptime and simplified administration.
This setup aligns with best practices for:
•
High
Availability (HA)
•
Disaster
Recovery (DR)
•
Minimal
downtime architecture
•
Enterprise-level
data protection