Oracle 读写分离(通常基于 Data Guard/Active Data Guard)的服务器数量,取决于架构目标(基础可用 / 高可用 / 高性能),核心是 "主库 + 从库" 的组合,以下是不同场景的配置与建议:
一、核心架构与服务器数量
Oracle 读写分离的核心是主库写、从库读,通过 Data Guard 同步数据,从库可设为只读承接查询。
| 架构类型 | 服务器数量 | 角色分配 | 适用场景 |
|---|---|---|---|
| 基础版(最小可用) | 2 台 | 主库 1 台(写)+ 从库 1 台(读) | 测试 / 轻量业务,读压力小,可容忍从库故障 |
| 标准版(高可用) | 3 台 | 主库 1 台 + 从库 2 台(读 + 备用) | 生产环境,需避免从库单点故障,分担读压力 |
| 增强版(主库高可用 + 读扩展) | 4 台 + | 主库 RAC 2 台(写 + HA)+ 从库 2 台 +(读) | 核心交易 + 高并发读,主库无单点故障,读能力线性扩展 |
| 企业级(全链路 HA) | 5 台 + | 主库 RAC 2 台 + 从库 2 台 + 读写代理 2 台(如 ProxySQL/Keepalived) | 金融 / 电商核心系统,全组件高可用,自动路由读写请求 |
二、关键说明
-
最小部署(2 台)
- 主库:负责所有写入,开启归档模式,配置 Data Guard 日志传输。
- 从库:只读模式,接收主库日志同步,承接所有查询。
- 风险:从库故障时,读请求需切回主库,可能导致读写冲突。
-
推荐生产部署(3 台及以上)
- 主库 1 台 + 从库 2 台:从库故障时,另一台从库可继续提供读服务,提升可用性。
- 主库 RAC 2 台:避免主库单点故障,支持滚动升级,适合核心业务。
- 读写代理层:ProxySQL/Keepalived 实现自动读写路由和故障切换,需 2 台服务器保障代理高可用。
-
扩展原则
- 读压力大时,可线性增加从库数量(Data Guard 支持最多 30 个备用库)。
- 主库性能瓶颈时,优先升级主库硬件或改为 RAC 集群,而非增加主库数量。
三、部署建议
-
硬件配置
- 主库:CPU 4 核 +,内存 16GB+,存储用 SSD,满足写入性能。
- 从库:CPU 2 核 +,内存 8GB+,存储与主库一致,保障同步与查询效率。
- RAC 节点:需共享存储(如 ASM),配置私有网络用于节点通信。
-
软件配置
- 主从库版本一致,均为 Oracle 企业版,开启归档和 Force Logging。
- 从库启用 Active Data Guard,支持实时应用日志,降低数据延迟。