Oracle Data Guard Observer 详解
Oracle Data Guard Observer 详解
适用版本:Oracle Database 10g / 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
Observer 是 Fast-Start Failover 的核心[1]:
详细见:Oracle Data Guard Broker 详解、Oracle Failover 详解。
2. Observer 作用
2.1 监控
- 监控主库
- 检测故障
- 自动切换
2.2 Fast-Start Failover
- 自动
- 秒级
- 透明
2.3 独立
- 第三地点
- 独立
- 高可用
3. 部署
3.1 位置
- 第三地点
- 独立于主备
- 高可用
3.2 要求
- 网络可达主备
- Oracle 客户端
- dgmgrl
3.3 冗余
- 多 Observer
- 12c+
- 高可用
4. 启用 Fast-Start Failover
4.1 配置
DGMGRL> EDIT CONFIGURATION SET PROPERTY FastStartFailoverThreshold=30;
DGMGRL> EDIT CONFIGURATION SET PROPERTY FastStartFailoverTarget='stby';
DGMGRL> ENABLE FAST_START FAILOVER;
4.2 条件
- 最大性能模式
- Observer 运行
- 备库正常
- 配置允许
4.3 验证
DGMGRL> SHOW CONFIGURATION VERBOSE;
5. 启动 Observer
5.1 命令
dgmgrl -logfile observer.log sys/xxx@prod
DGMGRL> START OBSERVER;
5.2 后台
nohup dgmgrl -logfile observer.log sys/xxx@prod <<EOF &
START OBSERVER;
EOF
5.3 验证
DGMGRL> SHOW OBSERVER;
6. Observer 行为
6.1 监控
- 定期 ping 主库
- 检测可达
- 状态
6.2 故障检测
- 主库不可达
- 阈值(30s)
- 确认
6.3 切换
- 备库升级
- 服务切换
- 通知
7. 多 Observer
7.1 12c+
- 多 Observer
- 冗余
- 高可用
7.2 主从
- 一个主 Observer
- 其他备用
- 切换
7.3 优势
- Observer 冗余
- 高可用
- 可靠
8. 日志
8.1 observer.log
- Observer 日志
- 状态
- 事件
8.2 分析
- 故障检测
- 切换
- 恢复
8.3 监控
- 日志监控
- 告警
- 响应
9. 管理
9.1 停止
DGMGRL> STOP OBSERVER;
9.2 重启
DGMGRL> STOP OBSERVER;
DGMGRL> START OBSERVER;
9.3 状态
DGMGRL> SHOW OBSERVER;
10. 故障场景
10.1 主库故障
1. Observer 检测
2. 等待阈值(30s)
3. 验证备库
4. Failover
5. 备库升级
6. 通知应用
10.2 网络分区
- Observer 看不到主库
- 但备库能看到
- 不切换
- 避免 split-brain
10.3 Observer 故障
- Observer 故障
- 多 Observer
- 备用接管
11. Reinstate
11.1 旧主库恢复
DGMGRL> REINSTATE DATABASE prod;
11.2 条件
- Flashback 启用
- 还原点
- 可恢复
11.3 自动
- Observer 自动
- 或手动
- 恢复
12. 监控
12.1 状态
DGMGRL> SHOW OBSERVER;
DGMGRL> SHOW CONFIGURATION VERBOSE;
12.2 日志
- observer.log
- 告警
- 事件
12.3 Fast-Start
SELECT fs_failover_status, fs_failover_observer_present
FROM v$database;
13. 常见问题
13.1 Observer 未运行
- 检查
- 重启
- 日志
13.2 误切换
- 网络抖动
- 阈值
- 调整
13.3 不切换
- 条件不满足
- 检查
- 修复
14. 最佳实践
- 第三地点:部署
- 多 Observer:冗余
- 阈值:合理
- 监控:状态
- 日志:检查
- Flashback:启用
- 测试:切换
- 文档:配置
- 演练:故障
- 改进:持续
15. 参考资料
[1] Oracle Data Guard Broker 19c, “Observer” https://docs.oracle.com/en/database/oracle/oracle-database/19/dgbkr/