What is Data Guard Broker?
If Oracle Data Guard is the engine that keeps your standby database running, the Data Guard Broker is the "Dashboard" and the "Automatic Pilot."
In the old days, managing a Standby database required a DBA to manually run complex SQL commands on multiple servers, tracking log sequences and network parameters by hand. The Broker simplifies all of that into a single, unified management framework.
The Data Guard Broker is a distributed management framework that automates the creation, maintenance, and monitoring of Data Guard configurations.
It consists of two main parts:
DMON (The Background Process): Every database in your setup (Primary and Standby) has a process called DMON. These processes talk to each other constantly to ensure the configuration is "healthy."
DGMGRL (The Command Line): This is the interface where the DBA types simple commands like switchover or failover.
Without the Broker, a "Switchover" (swapping the roles of Primary and Standby) involves about 10–15 manual steps across two servers. With the Broker, it is one command:
DGMGRL> switchover to "standby_db";
The Broker handles the shutdown, the role reversal, the mounting, and the restart automatically.
The Broker constantly checks for "Configuration Errors." If the network is slow or a log gap occurs, it reports the exact problem in a human-readable format rather than cryptic ORA-errors hidden in alert logs.
You cannot have automatic failover without the Broker. The Broker is what allows the "Observer" process to decide when to promote a standby to primary.
Instead of manually editing init.ora or spfile parameters on five different servers, you change the property in the Broker, and it "pushes" those changes to all the databases for you.
The Broker stores its "map" of the world in two binary files (usually called dr1<sid>.dat and dr2<sid>.dat).
These files contain the names of the databases, their transport modes (SYNC/ASYNC), and their current roles.
Because these files are separate from the database, the Broker knows what the configuration should look like even if the database is down.
| Feature | Manual Management (SQL*Plus) | Data Guard Broker (DGMGRL) |
| Complexity | High (Many manual steps) | Low (Automated commands) |
| Failover | Manual only | Supports Automatic (FSFO) |
| Monitoring | Check many V$ views | SHOW CONFIGURATION command |
| Errors | Hard to diagnose across sites | Centralized error reporting |
Enabling the Broker is a simple two-step process:
Tell the DB to start the DMON process:
ALTER SYSTEM SET dg_broker_start=TRUE;
Enter the DGMGRL utility and create the configuration:
dgmgrl sys/password
DGMGRL> CREATE CONFIGURATION 'my_dg_config' AS PRIMARY DATABASE IS 'prod_db' CONNECT IDENTIFIER IS 'prod_db';
DGMGRL> ADD DATABASE 'standby_db' AS CONNECT IDENTIFIER IS 'standby_db' MAINTAINED AS PHYSICAL;
DGMGRL> ENABLE CONFIGURATION;
In 2026, running a Data Guard setup without the Broker is like flying a modern jet by manually pulling on cables. It’s risky, slow, and prone to human error. The Broker is standard "best practice" for any professional Oracle environment.
Peer Tip: If you ever see a "Static Connect Identifier" error in the Broker, it’s usually because your
listener.oradoesn't have a(GLOBAL_DBNAME=...)entry. The Broker needs a "backdoor" into the database to restart it during a role change!