Oracle MAA 最佳实践详解

Oracle MAA 最佳实践详解

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


1. 概述

MAA(Maximum Availability Architecture)是 Oracle 官方高可用架构最佳实践[1]:

详细见:Oracle 单实例 RAC Standby 架构对比


2. MAA 目标

2.1 计划内停机

- 维护
- 升级
- 补丁
- 配置变更
- 最小化

2.2 计划外停机

- 系统故障
- 数据损坏
- 人为错误
- 灾难
- 避免

2.3 数据丢失

- RPO=0:零丢失
- 数据保护
- 一致性

3. MAA 架构层级

3.1 Bronze

- 单实例 + RMAN 备份
- RPO:小时级
- RTO:小时级

3.2 Silver

- RAC + RMAN 备份
- RPO:小时级
- RTO:分钟级

3.3 Gold

- RAC + Data Guard(最大性能)
- RPO:秒级
- RTO:分钟级

3.4 Platinum

- RAC + Active Data Guard(最大可用)
- RPO=0
- RTO:秒级

4. MAA 组件

4.1 RAC

- 节点冗余
- 实例故障切换
- 单点消除

4.2 Data Guard

- 数据冗余
- 灾难恢复
- 零丢失

4.3 ASM

- 存储冗余
- 镜像
- 消除存储单点

4.4 Application Continuity

- 应用层连续性
- 透明重试
- AC/TAC

5. MAA 最佳实践

5.1 冗余

- 网络:双链路
- 存储:ASM Normal/High
- 节点:RAC
- 数据中心:Data Guard

5.2 自动化

- Fast-Start Failover
- 服务切换
- 应用重连

5.3 监控

- 集群健康
- Data Guard 状态
- 延迟
- 告警

5.4 演练

- 定期切换
- 灾难演练
- 验证

6. Platinum 架构示例

6.1 主数据中心

- RAC 集群(N 节点)
- ASM High Redundancy
- 双网络
- 本地 Data Guard Observer

6.2 备数据中心

- RAC 集群(N 节点)
- ASM High Redundancy
- Active Standby
- Far Sync(零丢失)

6.3 网络

- 冗余 InfiniBand
- 冗余光纤
- 跨地域网络

7. 数据保护模式

7.1 最大性能

- 异步传输
- 性能优先
- RPO > 0

7.2 最大可用

- 同步传输
- 主备同步
- RPO = 0(正常)

7.3 最大保护

- 强制同步
- 主库停(备库不可用)
- RPO = 0

详细见:Oracle 保护模式详解


8. 应用连续性

8.1 TAF

- 透明应用故障切换
- SELECT 恢复
- 会话重连

8.2 AC

- Application Continuity
- 事务重试
- 12c+

8.3 TAC

- Transparent Application Continuity
- 自动重试
- 18c+

详细见:Oracle TAF 与 TAC 配置详解


9. 计划内停机消除

9.1 滚动升级

- RAC 滚动
- Data Guard 滚动
- 零停机

9.2 在线操作

- Online Redefinition
- Online Patch
- 在线重定义

9.3 Edition-Based Redefinition

- 应用在线升级
- EBR
- 多版本

10. 计划外停机消除

10.1 节点故障

- RAC 切换
- 服务迁移
- 应用重连

10.2 数据中心故障

- Data Guard Failover
- 应用切换
- 灾难恢复

10.3 数据损坏

- Flashback
- TTS
- RMAN 恢复

11. RPO/RTO

11.1 RPO

- Recovery Point Objective
- 数据丢失容忍
- MAA:0 / 秒级

11.2 RTO

- Recovery Time Objective
- 恢复时间
- MAA:秒级 / 分钟级

11.3 评估

- 业务影响
- 成本
- 选型

12. 监控

12.1 集群

crsctl stat res -t
srvctl status database -d prod

12.2 Data Guard

SELECT * FROM v$dataguard_stats;
SELECT max(delay_mins) FROM v$archive_dest;

12.3 性能

SELECT * FROM v$system_event WHERE event LIKE 'gc%';

13. 演练

13.1 Switchover

- 计划内
- 主备切换
- 验证

13.2 Failover

- 灾难模拟
- 故障切换
- 恢复

13.3 频率

- 季度
- 半年
- 年度

14. 常见问题

14.1 延迟高

- 网络
- Gap
- 优化

14.2 切换失败

- 状态检查
- 日志
- 重试

14.3 数据丢失

- 保护模式
- 验证
- RPO

15. 最佳实践

  1. Platinum 架构:关键业务
  2. 冗余:全栈
  3. 自动化:Failover
  4. 监控:实时
  5. 演练:定期
  6. AC/TAC:应用
  7. Far Sync:零丢失
  8. 滚动升级:零停机
  9. 文档:架构
  10. 评估:定期

16. 参考资料

[1] Oracle Maximum Availability Architecture 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/ha-ma/