As Oracle DBAs, ensuring zero data loss (RPO) and minimal downtime (RTO) is critical. Oracle Data Guard is the industry-standard solution for high availability, disaster recovery, and data protection.
(A) Primary Components:
• Primary Database
• Standby Database
– Physical Standby (Redo Apply via MRP)
– Logical Standby (SQL Apply)
– Snapshot Standby
– Far Sync Instance (for zero data loss over WAN)
(B) Data Guard Services:
• Redo Transport Services
– Transports redo from Primary to Standby
– Modes:
° SYNC / ASYNC
° AFFIRM / NOAFFIRM
° LGWR vs ARCH
• Apply Services
– Physical: MRP (Media Recovery Process)
– Logical: LSP (Logical Standby Process)
– Supports Real-Time Apply
(C) Redo Transport Configuration Parameters:
• LOG_ARCHIVE_CONFIG=’DG_CONFIG=(PRIMARY,STANDBY)’
• LOG_ARCHIVE_DEST_n
– SERVICE=
– VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
– DB_UNIQUE_NAME=
– ARCH, LGWR, ASYNC, SYNC, AFFIRM, NOAFFIRM
– NET_TIMEOUT=30
– REOPEN=300
– MAX_FAILURE=3
– DELAY=0
– ALTERNATE=LOG_ARCHIVE_DEST_n
– LOG_ARCHIVE_DEST_STATE_n=ENABLE
– FAL_SERVER, FAL_CLIENT – automatic gap resolution
– DB_FILE_NAME_CONVERT, LOG_FILE_NAME_CONVERT
– STANDBY_FILE_MANAGEMENT=AUTO
(D) Role Management:
• Switchover – Graceful switch between Primary and Standby
• Failover – Emergency switch when Primary fails
• Managed via:
– DGMGRL CLI
– Oracle Data Guard Broker
– Fast-Start Failover (FSFO) with Observer
(E) Broker-Specific Parameters:
• DG_BROKER_START=TRUE
• DG_BROKER_CONFIG_FILE1 / FILE2
• ENABLE FAST_START FAILOVER
• FastStartFailoverTarget
• ObserverPingInterval, FastStartFailoverThreshold
• Commands:
SHOW CONFIGURATION VERBOSE
VALIDATE DATABASE VERBOSE <db_name>
FAILOVER TO <db_name>, SWITCHOVER TO <db_name>
(F) Monitoring & Troubleshooting Views:
V$DATAGUARD_STATS
V$ARCHIVE_DEST_STATUS
V$ARCHIVE_GAP
V$MANAGED_STANDBY
V$DATABASE, V$DATABASE_INCARNATION
GV$LOG, GV$LOGFILE, GV$ARCHIVED_LOG
(G) Best Practices & Advanced Features:
• Enable db_lost_write_protect = TYPICAL
• Use DB_UNIQUE_NAME consistently in transport configs
• Protect listener with REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE
• Configure LOG_ARCHIVE_MAX_PROCESSES = 4 (or higher)
• Test Snapshot Standby with CONVERT TO SNAPSHOT/STANDBY
• Use Far Sync Instances for WAN deployments (zero data loss)
• Cascaded Standby to offload primary transport load
• Integrate with ZDLRA (Zero Data Loss Recovery Appliance)
(H) Tuning Tips:
• Monitor redo send and apply lag via:
• V$DATAGUARD_STATS (transport lag, apply lag)
• Optimize ASYNC transport with compression & MTU tuning
• Use ADG_REDIRECT_DML=TRUE for offloading reads to ADG