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. 对比
| 项 | 最大性能 | 最大可用 | 最大保护 |
|---|---|---|---|
| 传输 | ASYNC | SYNC | SYNC |
| 确认 | NOAFFIRM | AFFIRM | AFFIRM |
| RPO | > 0 | 0(正常) | 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. 最佳实践
- 业务评估:选型
- 最大可用:推荐
- Far Sync:远距离
- Standby Redo:必备
- 监控:模式
- 演练:降级
- 文档:配置
- 网络:冗余
- 测试:RPO
- 评估:定期
14. 参考资料
[1] Oracle Data Guard 19c, “Protection Modes” https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/