Monday, February 23, 2026

Oracle Data Guard Broker Switchover

 

Perform smooth switchover with Data Guard Broker.


Let’s look at how to perform oracle data guard switchover / failover using broker configuration. It’s very simple to perform switchover / failover using data guard broke as its only one single command that does the work

Data Guard Broker Switchover


A database can be in one of two mutually exclusive modes (primary or standby). These roles can be altered at run-time without loss of data or resetting of redo logs. This process is known as a Switchover and can be performed using the following commands.


Switchover Using DGMGRL

Consider test and test_s as primary and standby databases respectively. Connect to DGMGRL and issue below command

On primary:

===========

dgmgrl sys/sys@test


DGMGRL> show configuration;


DGMGRL> SWITCHOVER TO test_s;

Performing switchover NOW, please wait...

Operation requires a connection to instance "proddb_st" on database "test_s"

Connecting to instance "test_s"...

Connected.

New primary database "test_s" is opening...

Operation requires startup of instance "test" on database "test"

Starting instance "test"...

ORACLE instance started.

Database mounted.

Switchover succeeded, new primary is "test_s"


DGMGRL> show configuration;


Revert Back Using DGMGRL


Once you perform switchover, the original primary becomes standby and original standby becomes primary. At this point, our primary is test_sand standby is test. Connect to current primary test_sand switchover to current stnadby test


On current primary(test_s):

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

dgmgrl sys/sys@test_s

 

DGMGRL> show configuration;

 

DGMGRL> switchover to test;

Performing switchover NOW, please wait...

Operation requires a connection to instance "test" on database "test"

Connecting to instance "test"...

Connected.

New primary database "test" is opening...

Operation requires startup of instance "test_s" on database "test_s"

Starting instance "test_s"...

ORACLE instance started.

Database mounted.

Switchover succeeded, new primary is "test"

 

DGMGRL> show configuration;

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;

 

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...