Oracle Data Guard Broker 详解
Oracle Data Guard Broker 详解
适用版本:Oracle Database 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
Data Guard Broker 是 Oracle 提供的 Data Guard 集中管理与监控框架[1]:
2. 架构
2.1 组件
- Broker 配置(Configuration)
- Primary 数据库
- Standby 数据库(最多 30 个)
- DMON 进程(每个实例)
- 客户端:DGMGRL / Enterprise Manager
2.2 优势
- 集中管理
- 自动 Failover
- 简化 Switchover
- 配置一致性
- 监控告警
3. 启用 Broker
3.1 主库
ALTER SYSTEM SET dg_broker_start = TRUE;
3.2 备库
ALTER SYSTEM SET dg_broker_start = TRUE;
3.3 监听配置
# listener.ora 添加
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = prod_dgmgrl)
(ORACLE_HOME = /u01/app/oracle/product/19c/dbhome_1)
(SID_NAME = prod)
)
)
4. 创建配置
4.1 DGMGRL
dgmgrl sys/password@prod
DGMGRL> CREATE CONFIGURATION prod_config AS
PRIMARY DATABASE IS prod
CONNECT IDENTIFIER IS prod;
DGMGRL> ADD DATABASE stby1 AS
CONNECT IDENTIFIER IS stby1
MAINTAINED AS PHYSICAL;
DGMGRL> ENABLE CONFIGURATION;
4.2 查看
DGMGRL> SHOW CONFIGURATION;
DGMGRL> SHOW DATABASE prod;
DGMGRL> SHOW DATABASE stby1;
5. 属性
5.1 常用
DGMGRL> EDIT DATABASE prod SET PROPERTY 'LogXptMode' = 'SYNC';
DGMGRL> EDIT DATABASE stby1 SET PROPERTY 'LogXptMode' = 'SYNC';
DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY;
DGMGRL> EDIT DATABASE stby1 SET PROPERTY 'FastStartFailoverTarget' = 'prod';
5.2 DelayMins
DGMGRL> EDIT DATABASE stby1 SET PROPERTY 'DelayMins' = 60;
5.3 RedoRoutes
DGMGRL> EDIT DATABASE prod SET PROPERTY 'RedoRoutes' = '(stby1 : SYNC)';
6. Switchover
6.1 命令
DGMGRL> SWITCHOVER TO stby1;
6.2 验证
DGMGRL> SHOW CONFIGURATION;
DGMGRL> SHOW DATABASE prod;
DGMGRL> SHOW DATABASE stby1;
6.3 回切
DGMGRL> SWITCHOVER TO prod;
7. Failover
7.1 手动
DGMGRL> FAILOVER TO stby1;
7.2 后续
-- 原主库重置
ALTER DATABASE CONVERT TO SNAPSHOT STANDBY;
-- 或重建
7.3 Reinstate
DGMGRL> REINSTATE DATABASE prod;
8. Fast-Start Failover
8.1 启用
DGMGRL> EDIT CONFIGURATION SET PROPERTY 'FastStartFailoverThreshold' = 30;
DGMGRL> ENABLE FAST_START FAILOVER;
8.2 Observer
dgmgrl -logfile /tmp/observer.log sys/password@prod
DGMGRL> START OBSERVER;
8.3 验证
DGMGRL> SHOW CONFIGURATION VERBOSE;
DGMGRL> SHOW FAST_START FAILOVER;
9. 监控
9.1 状态
DGMGRL> SHOW CONFIGURATION;
DGMGRL> SHOW DATABASE prod STATUSREPORT;
DGMGRL> SHOW DATABASE stby1 STATUSREPORT;
9.2 日志
DGMGRL> SHOW DATABASE prod LOGLOCATION;
DGMGRL> SHOW DATABASE stby1 LOGLOCATION;
9.3 性能
SELECT * FROM v$dataguard_stats;
SELECT * FROM v$archive_dest_status;
10. 命令汇总
CREATE CONFIGURATION
ADD DATABASE
REMOVE DATABASE
ENABLE CONFIGURATION
DISABLE CONFIGURATION
ENABLE DATABASE
DISABLE DATABASE
SWITCHOVER
FAILOVER
REINSTATE
START OBSERVER
STOP OBSERVER
SHOW
EDIT
11. 应用场景
11.1 生产管理
- 集中管理
- 简化运维
- 自动 Failover
11.2 HA
- Observer
- Fast-Start Failover
- 高可用
11.3 DR
- Switchover 演练
- Failover 灾备
- 监控
12. 常见坑与排错
12.1 ORA-16625
- 无法连接
- 检查监听
- 检查 password file
12.2 ORA-16664
- 状态不一致
- 重置 DG配置
12.3 ORA-16816
- 不正确配置
- 检查属性
13. 最佳实践
- Broker 启用:简化
- Observer 部署:独立
- Fast-Start:HA
- 属性一致:验证
- 监控:状态
- 测试:Switchover/Failover
- 文档:流程
- 备份:配置
- 网络:稳定
- 监控:告警
14. 参考资料
[1] Oracle Data Guard Broker 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/dgbkr/