Tuesday, February 17, 2026

Configuring Oracle Data Guard Broker for HA

 

Oracle Data Guard Broker is a built-in management and automation tool that comes with Oracle Database to help you configure, monitor, and control Oracle Data Guard environments easily — without running lots of manual SQL commands.

Think of it as a control center for standby databases.


📌 What problem does it solve?

Normally with Oracle Data Guard, you must:

• Manually create standby databases
• Configure redo transport
• Manage switchover/failover
• Check synchronization

👉 Broker automates and simplifies all of this.


⚙️ What Data Guard Broker does for you

✅ Automatically configures primary & standby
✅ Continuously monitors health
✅ Manages switchover (planned role change) you can automate switchover system
✅ Manages failover (disaster recovery)   you can automate failover system 
✅ Detects problems and alerts you

🛠 Tools used with Broker

You usually manage it using:

• DGMGRL (Data Guard Manager command line)
• Oracle Enterprise Manager (GUI)


📊 Key Benefits (for DBAs)

✔ Less human error
✔ Faster disaster recovery
✔ Easier administration
✔ Built-in monitoring

Benefits of Data Guard Broker


One of the biggest benefits of Data Guard broker is that is centralizes the configuration, management and monitoring of Oracle Data Guard configurations.

  • Some of the operations that Data Guard broker simplifies are
  • Create Data Guard configuration between primary and standby databases
  • Add additional standby databases to existing Data Guard configuration
  • Mange Data Guard protection modes
  • Start switchover / failover by just one single command
  • Automate failover in case of primary not reachable
  • Monitor redo apply, gaps and data guard performance
  • Perform all above operations locally or remotely !

Edit listeners

If you look at the listener configuration file, there is a dedicated service we have to create for DGMGRL. This is required in order enable Data Guard Broker. If this is not set, add below entry (test_DGMGRL and it has to be exactly in the same format <SID>_DGMGRL) and restart listener on both primary and standby

su - oracle
cd $ORACLE_HOME/network/admin
cat listener.ora

LISTENER =
 (DESCRIPTION_LIST =
   (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.111)(PORT = 1521))
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
   )
 )

SID_LIST_LISTENER=
 (SID_LIST=
   (SID_DESC=
     (GLOBAL_DBNAME=test)
     (SID_NAME=test)
     (ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1)
   )
   (SID_DESC=
     (GLOBAL_DBNAME=test_DGMGRL)
     (SID_NAME=test)
     (ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1)
   )
 )   

Stop MRP on standby

We would like to manage our data guard configuration using Data Guard Broker. Stop MRP and clear Log_Archive_dest_2 parameter


On standby:

===========

SQL> alter database recover managed standby database cancel;

SQL> show parameter LOG_ARCHIVE_DEST_2

SQL> alter system set LOG_ARCHIVE_DEST_2='' SCOPE=BOTH sid='*';


this parameter LOG_ARCHIVE_DEST_2 defines the second server where the logs will be shipped if you remember we define value for it when configuraing physical standby manually but now we keep it empty because we are now dependent to Data Guard Broker which is automate system and knows how to set your archive destination so you need not worry about this parameter so what we do we completely remove this parameter. so remove it from both Primary and Standby

 

On primary:

===========

SQL> show parameter LOG_ARCHIVE_DEST_2

SQL> alter system set LOG_ARCHIVE_DEST_2='' SCOPE=BOTH sid='*';





Enable broker

We need to start the broker by enabling it on both primary and standby


On primary:

===========

SQL> alter system set dg_broker_start=true;

SQL> show parameter dg_broker_start;

 

On standby:

===========

SQL> alter system set dg_broker_start=true;

SQL> show parameter dg_broker_start;





Register primary with broker



On primary, connect to DGMGRL utility and register the primary database with broker


On primary:

===========

dgmgrl sys/sys@test

DGMGRL> show configuration;

DGMGRL> create configuration my_dgb as primary database is test connect identifier is test;

DGMGRL> show configuration;





Register standby with broker



In the same DGMGRL utility, register standby from primary server itself

DGMGRL> add database test_s as connect identifier is test_s;

DGMGRL> show configuration;





Enable Data Guard broker



Once primary and standby are registered, we must enable broker

DGMGRL> ENABLE CONFIGURATION;

DGMGRL> SHOW CONFIGURATION;

DGMGRL> SHOW DATABASE test;

DGMGRL> SHOW DATABASE test_s;





Manage Redo Apply via Broker



Like how we start / stop MRP manually, we can start / stop redo apply on standby using broker

Stop log apply:

===============

dgmgrl sys/sys@test

DGMGRL> show configuration;

DGMGRL> show database test_s;

DGMGRL> edit database test_s set state=APPLY-OFF;

DGMGRL> show database test_s;

 

Start log apply:

================

dgmgrl sys/sys@test

DGMGRL> show configuration;

DGMGRL> show database test_s;

DGMGRL> edit database test_s set state=APPLY-ON;

DGMGRL> show database test_s;





Start/stop log shipping via Broker



How we can manually enable log shipping from primary to standby, the same way we can use broker to enable log shipping

Disable log shipping/transport:

===============================

dgmgrl sys/sys@test

DGMGRL> show configuration;

DGMGRL> show database test;

DGMGRL> edit database test set state=TRANSPORT-OFF;

DGMGRL> show database test;

 

Enable log shipping/transport:

==============================

dgmgrl sys/sys@test

DGMGRL> show configuration;

DGMGRL> show database test;

DGMGRL> edit database test set state=TRANSPORT-ON;

DGMGRL> show database test;

 

No comments:

Post a Comment

Please do not enter any spam link in the comments

Logical Standby in Oracle Data Guard Overview

  In Oracle Data Guard , a Logical Standby Database is a standby database that: Receives redo data from the Primary database Convert...