Oracle 双活架构详解

Oracle 双活架构详解

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


1. 概述

双活架构实现两地同时提供服务[1]:

详细见:Oracle 跨地域高可用详解Oracle Sharding 详解


2. 双活概念

2.1 双活

- 两地同时活跃
- 负载分担
- 高可用

2.2 vs 主备

- 主备:一主一备
- 双活:两主
- 资源利用

2.3 优势

- 资源利用
- 就近访问
- 性能

3. 双活方案

3.1 GoldenGate

- 双向复制
- 异构
- 灵活

3.2 Sharding

- 数据分片
- 多地域
- 分布式

3.3 Active Active

- Data Guard
- 多主
- 限制

4. GoldenGate 双活

4.1 架构

地域 A <--双向复制--> 地域 B

4.2 冲突

- 同一数据
- 双向更新
- 冲突检测

4.3 解决

- 时间戳
- 版本
- 业务规则

5. Sharding 双活

5.1 架构

- 数据分片
- 地域分布
- 就近访问

5.2 分片键

- 地域
- 用户
- 业务

5.3 优势

- 无冲突
- 分布式
- 性能

详细见:Oracle Sharding 详解


6. 冲突处理

6.1 检测

- 同一行
- 双向更新
- 时间戳

6.2 解决策略

- 最新获胜
- 源获胜
- 业务规则
- 手动

6.3 预防

- 数据隔离
- 分片
- 业务设计

7. 数据一致性

7.1 最终一致

- 异步
- 最终
- 延迟

7.2 强一致

- 同步
- 一致
- 延迟

7.3 选择

- 业务需求
- 性能
- 评估

8. 应用设计

8.1 数据隔离

- 地域数据
- 不冲突
- 简单

8.2 全局唯一

- ID 全局唯一
- 序列
- 避免

8.3 业务规则

- 冲突避免
- 设计
- 优化

9. 网络规划

9.1 专线

- 高带宽
- 低延迟
- 冗余

9.2 延迟

- 尽量低
- 评估
- 优化

9.3 带宽

- 足够
- 监控
- 扩展

10. 应用路由

10.1 GSLB

- 全局负载
- 就近
- 切换

10.2 DNS

- 智能 DNS
- 地域
- 路由

10.3 应用

- 就近
- 切换
- 透明

11. 监控

11.1 复制

- GoldenGate
- 延迟
- 状态

11.2 冲突

- 冲突日志
- 解决
- 监控

11.3 性能

- 两地
- 一致
- 优化

12. 故障切换

12.1 单地域故障

- 全量切换
- 应用
- 验证

12.2 数据

- 冲突处理
- 同步
- 验证

12.3 恢复

- 修复
- 同步
- 恢复双活

13. 应用场景

13.1 全球化

- 就近访问
- 性能
- 体验

13.2 关键业务

- 双活
- 高可用
- 容灾

13.3 负载分担

- 资源利用
- 性能
- 扩展

14. 常见问题

14.1 冲突

- 检测
- 解决
- 预防

14.2 延迟

- 网络
- 优化
- 监控

14.3 复杂

- 架构
- 管理
- 评估

15. 最佳实践

  1. 数据隔离:避免冲突
  2. GoldenGate:双向
  3. Sharding:分片
  4. 冲突:预防
  5. 网络:专线
  6. 监控:延迟
  7. 测试:冲突
  8. 文档:架构
  9. 演练:故障
  10. 评估:场景

16. 参考资料

[1] Oracle GoldenGate 19c, “Active-Active” https://docs.oracle.com/en/middleware/goldengate/