Oracle 11g Dataguard物理备库配合Broker工具可实现自动化的高可用切换,其中Fast Failover功能能够在主库发生故障时无需人工干预自动完成备库升主操作,是生产环境重要的容灾保障手段。下面详细介绍相关配置与测试过程。

环境准备
测试前需要确认主备库的基础配置满足要求:主备库均为Oracle 11g版本,Dataguard物理备库已正常同步,主备库监听正常运行,主备库之间网络互通。同时需要确认主备库的dg_broker_start参数初始状态为FALSE,后续再进行开启。
Broker基础配置
开启Broker功能
在主备库分别执行以下SQL开启Broker:
-- 主库执行 ALTER SYSTEM SET dg_broker_start=TRUE SCOPE=BOTH; -- 备库执行 ALTER SYSTEM SET dg_broker_start=TRUE SCOPE=BOTH;
创建Broker配置
在主库使用dgmgrl工具创建配置,命令如下:
dgmgrl / DGMGRL> CREATE CONFIGURATION 'dg_config' AS PRIMARY DATABASE IS 'orcl_pr' CONNECT IDENTIFIER IS 'orcl_pr'; DGMGRL> ADD DATABASE 'orcl_st' AS CONNECT IDENTIFIER IS 'orcl_st' MAINTAINED AS PHYSICAL; DGMGRL> ENABLE CONFIGURATION;
其中orcl_pr是主库的唯一名称,orcl_st是备库的唯一名称,需根据实际环境替换。
Fast Failover前置配置
配置Observer
Fast Failover需要Observer进程持续监控主备库状态,Observer需要单独部署在一台服务器上,执行以下命令启动Observer:
dgmgrl sys/oracle@orcl_pr DGMGRL> START OBSERVER 'observer1' FILE '/u01/app/oracle/observer/observer.dat';
Observer启动后会持续在后台运行,监控主备库的状态变化。
开启Fast Failover功能
在dgmgrl中执行以下命令开启Fast Failover:
DGMGRL> ENABLE FAST_START FAILOVER; DGMGRL> START OBSERVER;
执行完成后可以通过以下命令确认Fast Failover状态:
DGMGRL> SHOW FAST_START FAILOVER;
Fast Failover测试流程
模拟主库故障
直接关闭主库的数据库实例,模拟主库宕机场景:
-- 主库执行 SHUTDOWN ABORT;
观察自动切换过程
Observer会检测到主库不可用,自动触发Fast Failover流程,将备库切换为新的主库。可以在Observer所在的服务器查看日志,确认切换过程:
tail -f /u01/app/oracle/observer/observer.dat
验证切换结果
切换完成后,登录原备库(现新主库)查看数据库角色:
SELECT DATABASE_ROLE FROM V$DATABASE;
若返回结果为PRIMARY,说明切换成功。同时可以查看新主库的日志序列,确认数据无丢失。
恢复原主库
将原主库重新启动,加入Dataguard配置作为新的备库:
-- 原主库执行 STARTUP MOUNT; ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
在dgmgrl中查看配置状态,确认原主库已作为备库正常同步。
注意事项
- Fast Failover要求主备库的数据同步模式为最大可用或最大保护模式,否则无法开启该功能
- Observer服务器需要与主备库网络稳定,避免误触发切换
- 测试前建议先备份主备库数据,避免测试过程造成数据丢失
- 生产环境开启Fast Failover前需要充分测试,确认切换流程符合业务要求
Oracle_11gDataguardBrokerFast_Failover修改时间:2026-06-18 18:15:19