Oracle Data Guard Broker 详解
Oracle Data Guard Broker 详解
适用版本:Oracle Database 10g / 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
Data Guard Broker 是 Data Guard 集中管理框架[1]:
2. 优势
2.1 集中
- 统一管理
- 多数据库
- 一处配置
2.2 自动化
- 自动 Failover
- Observer
- 监控
2.3 简化
- 简单命令
- 复杂操作
- 一键
3. 架构
3.1 组件
- Broker 配置
- 主库 DMON
- 备库 DMON
- Observer
- 客户端(dgmgrl)
3.2 DMON
- Data Guard Monitor
- 每实例一个
- 通信
3.3 配置文件
- broker 配置
- 主备同步
- 一致
4. 启用
4.1 参数
ALTER SYSTEM SET dg_broker_start=true;
-- 默认端口 1521
ALTER SYSTEM SET dg_broker_config_file1='/u01/dg1.dat';
ALTER SYSTEM SET dg_broker_config_file2='/u02/dg2.dat';
4.2 网络
# listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC = (GLOBAL_DBNAME = prod_DGMGRL)(ORACLE_HOME=...)(SID_NAME=prod))
)
5. 创建配置
5.1 创建
dgmgrl sys/password@prod
DGMGRL> CREATE CONFIGURATION dg_cfg AS
PRIMARY DATABASE IS prod
CONNECT IDENTIFIER IS prod;
5.2 添加备库
DGMGRL> ADD DATABASE stby AS
CONNECT IDENTIFIER IS stby
MAINTAINED AS PHYSICAL;
5.3 启用
DGMGRL> ENABLE CONFIGURATION;
6. 查看
6.1 配置
DGMGRL> SHOW CONFIGURATION;
DGMGRL> SHOW DATABASE VERBOSE prod;
DGMGRL> SHOW DATABASE VERBOSE stby;
6.2 状态
DGMGRL> SHOW DATABASE prod StatusReport;
DGMGRL> SHOW DATABASE stby StatusReport;
7. 属性
7.1 传输模式
DGMGRL> EDIT DATABASE prod SET PROPERTY LogXptMode='SYNC';
DGMGRL> EDIT DATABASE stby SET PROPERTY LogXptMode='SYNC';
7.2 保护模式
DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY;
7.3 状态
DGMGRL> EDIT DATABASE stby SET STATE='APPLY-ON';
DGMGRL> EDIT DATABASE stby SET STATE='READ-ONLY';
DGMGRL> EDIT DATABASE stby SET STATE='READ-WRITE';
8. Switchover
8.1 命令
DGMGRL> SWITCHOVER TO stby;
8.2 流程
1. 验证
2. 主库转备
3. 备库转主
4. 应用切换
5. 旧主库应用
8.3 验证
DGMGRL> SHOW CONFIGURATION;
详细见:Oracle Switchover 详解。
9. Failover
9.1 命令
DGMGRL> FAILOVER TO stby;
9.2 紧急
- 主库不可用
- 备库升级为主
- 应用切换
9.3 旧主库
- Reinstate
- 或重建
详细见:Oracle Failover 详解。
10. Fast-Start Failover
10.1 启用
DGMGRL> ENABLE FAST_START FAILOVER;
10.2 Observer
dgmgrl -logfile observer.log sys/password@prod
DGMGRL> START OBSERVER;
10.3 条件
- 主库故障
- Observer 检测
- 自动切换
- 秒级
11. Observer
11.1 角色
- 监控主库
- 自动 Failover
- 独立节点
11.2 部署
- 第三地点
- 独立
- 高可用
11.3 启动
DGMGRL> START OBSERVER;
DGMGRL> STOP OBSERVER;
12. 管理
12.1 编辑
DGMGRL> EDIT DATABASE prod SET PROPERTY ...;
DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS ...;
12.2 删除
DGMGRL> REMOVE DATABASE stby;
DGMGRL> REMOVE CONFIGURATION;
12.3 禁用
DGMGRL> DISABLE CONFIGURATION;
DGMGRL> DISABLE FAST_START FAILOVER;
13. 监控
13.1 状态
DGMGRL> SHOW CONFIGURATION;
DGMGRL> SHOW DATABASE prod;
13.2 日志
- drc<sid>.log
- alert log
- observer log
13.3 视图
SELECT * FROM v$dataguard_config;
SELECT * FROM v$dataguard_stats;
14. 常见问题
14.1 ORA-16532
- 配置不存在
- 检查
14.2 ORA-16625
- 状态不一致
- 同步
14.3 Failover 失败
- 状态
- 手动
- 日志
15. 最佳实践
- Broker:使用
- Observer:第三地
- Fast-Start:自动
- 监控:状态
- 日志:检查
- 测试:切换
- 网络:冗余
- 文档:配置
- 演练:定期
- 自动化:Failover
16. 参考资料
[1] Oracle Data Guard Broker 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/dgbkr/