Oracle 保护模式详解

Oracle 保护模式详解

适用版本:Oracle Database 10g / 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07


1. 概述

保护模式决定数据丢失容忍度[1]:

详细见:Oracle Data Guard 架构详解Oracle Redo 传输详解


2. 三种模式

2.1 最大性能(MAXIMUM PERFORMANCE)

- 默认
- ASYNC
- 性能优先
- RPO > 0

2.2 最大可用(MAXIMUM AVAILABILITY)

- SYNC
- 备库故障降级
- RPO = 0(正常)

2.3 最大保护(MAXIMUM PROTECTION)

- SYNC
- 备库故障主库停
- RPO = 0

3. 最大性能

3.1 特点

- 异步传输
- 不影响主库性能
- 可能丢失

3.2 适用

- 远距离
- 性能优先
- RPO 宽松

3.3 配置

ALTER SYSTEM SET log_archive_dest_2=
  'service=stby ASYNC NOAFFIRM valid_for=(online_logfiles,primary_role) db_unique_name=stby';

4. 最大可用

4.1 特点

- 同步传输
- 备库正常:零丢失
- 备库故障:降级为异步

4.2 适用

- 关键业务
- 零丢失(正常)
- 高可用

4.3 配置

ALTER SYSTEM SET log_archive_dest_2=
  'service=stby SYNC AFFIRM valid_for=(online_logfiles,primary_role) db_unique_name=stby';
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY;

5. 最大保护

5.1 特点

- 强制同步
- 备库不可用:主库停
- 绝对零丢失

5.2 适用

- 极关键业务
- 不能丢失任何数据
- 金融

5.3 配置

ALTER SYSTEM SET log_archive_dest_2=
  'service=stby SYNC AFFIRM valid_for=(online_logfiles,primary_role) db_unique_name=stby';
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PROTECTION;

6. 对比

最大性能最大可用最大保护
传输ASYNCSYNCSYNC
确认NOAFFIRMAFFIRMAFFIRM
RPO> 00(正常)0
备库故障继续降级主库停
性能最好最差
风险丢失主库停

7. 切换模式

7.1 升级

- 最大性能 -> 最大可用 -> 最大保护
- 逐步升级
- 验证

7.2 降级

- 最大保护 -> 最大可用 -> 最大性能
- 立即
- 安全

7.3 命令

ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY;
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PROTECTION;

8. 前提条件

8.1 最大可用/保护

- SYNC 传输
- AFFIRM
- Standby Redo Log

8.2 最大保护

- 至少一个 SYNC 备库
- 备库正常
- 否则主库停

9. Broker

9.1 配置

DGMGRL> EDIT DATABASE prod SET PROPERTY LogXptMode='SYNC';
DGMGRL> EDIT DATABASE stby SET PROPERTY LogXptMode='SYNC';
DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY;

9.2 查看

DGMGRL> SHOW CONFIGURATION;

10. 监控

10.1 模式

SELECT protection_mode, protection_level FROM v$database;

10.2 一致性

- protection_mode:配置
- protection_level:当前
- 一致

10.3 异常

- 不一致:降级
- 检查
- 修复

11. 选择

11.1 业务

- 关键程度
- RPO 要求
- 成本

11.2 推荐

- 普通:最大性能
- 重要:最大可用
- 极关键:最大保护

11.3 MAA

- Platinum:最大可用
- Gold:最大性能
- 评估

12. 常见问题

12.1 降级

- 备库故障
- 最大可用降级
- 监控

12.2 主库停

- 最大保护
- 备库不可用
- 立即

12.3 性能

- SYNC 延迟
- 优化
- 评估

13. 最佳实践

  1. 业务评估:选型
  2. 最大可用:推荐
  3. Far Sync:远距离
  4. Standby Redo:必备
  5. 监控:模式
  6. 演练:降级
  7. 文档:配置
  8. 网络:冗余
  9. 测试:RPO
  10. 评估:定期

14. 参考资料

[1] Oracle Data Guard 19c, “Protection Modes” https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/