文档概述
本文档聚焦 Oracle 21c 版本中 Active Data Guard(ADG)的核心新特性,围绕PDB 级 Data Guard(DGPDB)、Broker 运维增强、性能优化、数据保护与恢复、高可用架构升级五大维度,详细说明功能原理、配置方法、适用场景与限制,为 DBA 与架构师提供 21c ADG 部署与运维的权威参考。
一、核心新特性总览
Oracle 21c ADG 在 19c 基础上,实现多租户精细化管控、运维自动化、性能与数据保护全面升级,核心新特性如下:
PDB 级 Data Guard(DGPDB):单 PDB 独立配置 ADG、角色切换,替代传统 CDB 级保护
Broker 运维增强:一键初始化主库、Far Sync 实例创建、Observer 扩展、配置验证
性能优化:备库结果缓存保留、DML 重定向增强、IM 列存与 MIRA 深度优化
数据保护与恢复:非日志块自动修复、主备还原点同步增强、闪回自动跟随
高可用架构升级:Far Sync 简化部署、FSFO 最大可用性模式扩展、多 Observer 支持
二、详细新特性说明
2.1 PDB 级 Data Guard(DGPDB)——21c 革命性突破
2.1.1 功能概述
21.7 版本正式推出PDB 级 Data Guard(DGPDB),支持为单个 PDB 独立配置 ADG 保护,实现单 PDB 的 Switchover/Failover,无需影响同 CDB 内其他 PDB,是多租户架构下 ADG 的重大升级。
核心价值:
精细化灾备:按业务 PDB 独立配置保护策略,资源隔离、故障隔离
负载均衡:跨站点 PDB 读写分离,提升资源利用率
快速切换:单 PDB 角色切换远快于 CDB 级切换,降低业务中断时间
架构逻辑:源 CDB 的单个 PDB 作为主 PDB,目标 CDB 的对应 PDB 作为备 PDB,仅同步该 PDB 的 Redo,RFS 进程仅接收并应用目标 PDB 的 Redo 日志。
2.1.2 配置方法(Broker 命令)
sql
-- 1. 主库CDB初始化ADG
DGMGRL> PREPARE DATABASE FOR DATA GUARD ON DATABASE CDB1_PRIMARY;
-- 2. 创建DGPDB配置(主PDB:CDB1_PDB1,备PDB:CDB2_PDB1)
DGMGRL> CREATE CONFIGURATION DGPDB1 AS PRIMARY DATABASE IS CDB1_PDB1 CONNECT IDENTIFIER IS CDB1_PDB1;
-- 3. 添加备PDB
DGMGRL> ADD DATABASE CDB2_PDB1 AS CONNECT IDENTIFIER IS CDB2_PDB1 MAINTAINED AS PHYSICAL STANDBY;
-- 4. 启用配置
DGMGRL> ENABLE CONFIGURATION;
-- 5. 单PDB切换(Switchover)
DGMGRL> SWITCHOVER TO CDB2_PDB1;
2.1.3 适用场景与限制
适用场景:多租户 CDB 内不同业务 PDB 需差异化灾备策略、单 PDB 读写分离、跨站点 PDB 负载均衡
限制:仅支持物理备库;不支持 PDB 级 DDL 重定向;同 CDB 内 PDB 需统一保护模式(最大保护 / 可用 / 性能)
2.2 Data Guard Broker 增强
2.2.1 一键主库初始化(PREPARE DATABASE)
新增PREPARE DATABASE FOR DATA GUARD命令,一键完成主库 ADG 初始化(参数配置、归档开启、Broker 启用),替代传统多步骤手动配置。
命令示例:
sql
DGMGRL> PREPARE DATABASE FOR DATA GUARD ON DATABASE PRIMARY_DB;
2.2.2 Far Sync 实例一键创建
新增CREATE FAR_SYNC命令,直接在 Broker 中创建 Far Sync 实例并加入配置,简化长距离灾备架构部署。
命令示例:
sql
DGMGRL> CREATE FAR_SYNC FAR_SYNC1 AS CONNECT IDENTIFIER IS FAR_SYNC1;
DGMGRL> ADD FAR_SYNC FAR_SYNC1 TO CONFIGURATION;
2.2.3 Observer 扩展与优先级
Observer 数量上限提升至 4 个,支持多站点监控,提升 FSFO 可靠性。
新增PreferredObserverHosts属性,可指定 Observer 主机并设置优先级,自动选择最优 Observer。
命令示例:
sql
DGMGRL> EDIT CONFIGURATION SET PROPERTY PreferredObserverHosts='OBS1:1,OBS2:2,OBS3:3';
2.2.4 FSFO 配置验证与告警
新增VALIDATE FAST_START FAILOVER命令,预检查 FSFO 配置有效性,提前发现网络、权限、参数问题。
命令示例:
sql
DGMGRL> VALIDATE FAST_START FAILOVER;
2.2.5 客户端目录标准化
Broker 客户端支持标准化目录结构,统一配置文件、日志文件路径,简化多环境部署与管理。
2.3 性能优化特性
2.3.1 备库结果缓存保留(Standby Result Cache Preservation)
21c 支持备库结果缓存持久化,查询结果缓存不会因 Redo 应用被清除,大幅提升备库重复查询性能,尤其适配报表、分析类业务。
启用方法(主备库均配置):
sql
ALTER SYSTEM SET RESULT_CACHE_MODE='FORCE' SCOPE=BOTH;
ALTER SYSTEM SET STANDBY_RESULT_CACHE_PRESERVE=TRUE SCOPE=BOTH;
2.3.2 DML 重定向增强
19c 正式功能在 21c 进一步优化:支持更多 DML 类型、降低主库性能开销、提升事务一致性,适配读多写少的混合负载场景。
增强点:支持 MERGE、多表 DML;优化内部 DBLink 转发逻辑,减少延迟;新增会话级超时控制。
2.3.3 IM 列存与 MIRA 深度优化
解除 19c 限制,备库 IM 列存与多实例 Redo Apply(MIRA)完全共存,IM 列存自动适配 Redo 应用,查询性能与 Redo 应用效率双向提升。
启用方法:
sql
-- 备库启用IM列存
ALTER SYSTEM SET INMEMORY_SIZE=10G SCOPE=SPFILE;
-- 启用MIRA
ALTER SYSTEM SET PARALLEL_REDO_APPLY=TRUE SCOPE=BOTH;
2.4 数据保护与恢复增强
2.4.1 非日志块自动修复(Automatic Correction of Non-logged Blocks)
21c 新增两种Standby Nologging 模式,解决主库 NOLOGGING 操作导致备库数据不一致问题,备库自动修复非日志块,无需手动干预。
两种模式:
Standby Nologging for Load Performance:主库加载性能优先,备库存在临时非日志块,自动修复
Standby Nologging for Data Availability:数据可用性优先,主库加载限速,备库无任何非日志块
配置方法:
sql
-- 主库启用性能优先模式
ALTER SYSTEM SET STANDBY_NOLOGGING='LOAD_PERFORMANCE' SCOPE=BOTH;
-- 主库启用可用性优先模式
ALTER SYSTEM SET STANDBY_NOLOGGING='DATA_AVAILABILITY' SCOPE=BOTH;
2.4.2 主备还原点同步增强
主库创建的正常 / 保证还原点自动全量同步备库,备库可直接使用该还原点闪回,支持 PDB 级还原点同步,适配多租户架构。
示例:
sql
-- 主库PDB创建还原点
ALTER SESSION SET CONTAINER=PDB1;
CREATE RESTORE POINT PDB1_BEFORE_PATCH GUARANTEE FLASHBACK DATABASE;
-- 备库PDB查询,还原点已同步
SELECT NAME, SCN, TIME FROM V$RESTORE_POINT WHERE CON_ID=3;
2.4.3 备库自动跟随主库闪回
主库执行闪回数据库或时点恢复(PITR)后,Mount 状态的备库自动触发相同恢复流程,无需手动操作,确保主备数据时点严格一致。
2.5 高可用架构升级
2.5.1 Far Sync 架构简化
Far Sync 实例配置与管理全面简化,支持 Broker 一键创建、自动 Redo 中转、独立监控,实现跨地域零数据丢失(RPO=0),无需复杂存储或网络设备。
2.5.2 FSFO 最大可用性模式扩展
支持在最大可用性模式下启用 FSFO,即使主库无同步备库,仅通过 Far Sync 实例也可实现零数据丢失故障转移,提升长距离灾备可靠性。
2.5.3 备库无效 PL/SQL 自动重编译
备库执行无效 PL/SQL 对象(存储过程、函数、包)时,自动触发重编译,无需手动执行ALTER ... COMPILE,提升备库业务连续性。
三、21c vs 19c ADG 核心特性对比
表格
特性 19c 21c
PDB 级 ADG 不支持 正式支持 DGPDB,单 PDB 独立配置 / 切换
Broker 初始化 手动多步骤 一键PREPARE DATABASE
Far Sync 创建 手动配置 Broker 一键CREATE FAR_SYNC
Observer 数量 1 个 最多 4 个,支持优先级
备库结果缓存 不保留 支持STANDBY_RESULT_CACHE_PRESERVE
非日志块修复 有限支持 两种 Standby Nologging 模式,自动修复
IM+MIRA 共存 支持 深度优化,性能大幅提升
FSFO 验证 不支持 一键VALIDATE FAST_START FAILOVER
四、部署与运维建议
DGPDB 部署:多租户环境优先采用 DGPDB,按业务 PDB 独立配置保护策略;单 PDB 切换前验证 Redo 同步状态,避免数据不一致。
Broker 运维:生产环境强制使用 Broker,启用PREPARE DATABASE初始化;定期执行VALIDATE FAST_START FAILOVER验证 FSFO;部署多 Observer 提升可靠性。
性能优化:备库启用结果缓存保留与 IM 列存 + MIRA,适配报表与分析业务;DML 重定向仅用于读多写少场景,监控主库性能。
数据保护:主库 NOLOGGING 操作优先选择DATA_AVAILABILITY模式,确保备库数据一致;主库创建还原点后,备库自动同步,简化跨库恢复。
高可用架构:长距离灾备采用 Far Sync 实例,实现零数据丢失;FSFO 启用最大可用性模式,提升故障转移可靠性。
五、注意事项与限制
DGPDB 限制:仅支持物理备库;同 CDB 内 PDB 保护模式必须一致;不支持 PDB 级 DDL 重定向。
结果缓存:备库结果缓存仅用于查询,不参与 Redo 生成,主库结果缓存不会同步到备库。
非日志块修复:LOAD_PERFORMANCE模式下备库存在临时数据不一致,需等待自动修复完成。
Far Sync:Far Sync 实例仅负责 Redo 中转,不存储用户数据,需单独部署高可用。
Observer:多 Observer 需部署在不同站点,避免单点故障;优先级设置需符合业务灾备策略。
六、总结
Oracle 21c ADG 通过PDB 级精细化管控、Broker 运维自动化、性能与数据保护全面升级,彻底解决多租户架构下 ADG 的痛点,从传统 CDB 级灾备升级为PDB 级灵活灾备 + 读写分离的综合高可用方案,大幅提升业务连续性、资源利用率与运维效率,是 Oracle 多租户高可用架构的最优选择。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




