一、从单机房说起:基础部署架构

我们先从一个最简单的单机房部署场景开始。假设你手里有三台服务器,想搭建一个OceanBase集群。这时候典型的架构是这样的:

-- OceanBase单机房部署示例(技术栈:OceanBase 3.x)
-- 三节点部署,包含一个Zone(逻辑分区)
CREATE CLUSTER obcluster 
ZONE 'zone1' 
SERVER '192.168.1.101:2882',
SERVER '192.168.1.102:2882', 
SERVER '192.168.1.103:2882';

-- 创建资源池(分配CPU、内存等资源)
CREATE RESOURCE POOL pool1 
UNIT 'unit1' 
UNIT_NUM 1 
ZONE_LIST ('zone1');

这种架构下,所有节点都在同一个机房,通过Paxos协议实现数据同步。优点是部署简单,运维成本低;缺点是机房断电或网络故障会导致服务完全不可用。

二、同城双活:跨机房的容灾方案

当业务对可用性要求更高时,可以采用同城双机房部署。假设我们在同一个城市有两个机房(A和B),每个机房部署至少两个节点:

-- OceanBase同城双机房部署(技术栈:OceanBase 4.x)
-- 两个Zone分别对应两个机房
CREATE CLUSTER obcluster 
ZONE 'zoneA' 
SERVER '192.168.1.101:2882',
SERVER '192.168.1.102:2882',
ZONE 'zoneB' 
SERVER '192.168.2.101:2882',
SERVER '192.168.2.102:2882';

-- 设置优先级(优先读写zoneA)
ALTER CLUSTER obcluster 
SET PRIMARY_ZONE = 'zoneA;zoneB';

这里的关键点是:

  1. 每个Zone有独立的数据副本
  2. 通过PRIMARY_ZONE控制读写优先级
  3. 机房之间需要低延迟网络(建议≤2ms)

三、异地容灾:三地五中心的终极方案

对于金融级场景,可能需要跨地域容灾。典型方案是"三地五中心"——三个城市部署五个数据中心:

-- 三地五中心部署示例(技术栈:OceanBase 4.x)
CREATE CLUSTER obcluster 
ZONE 'shanghai1' SERVER '10.1.1.101:2882', '10.1.1.102:2882',
ZONE 'shanghai2' SERVER '10.1.2.101:2882', '10.1.2.102:2882',
ZONE 'beijing1'  SERVER '10.2.1.101:2882',
ZONE 'shenzhen1' SERVER '10.3.1.101:2882';

-- 设置地域优先级
ALTER CLUSTER obcluster 
SET REGION 'east' ZONE_LIST ('shanghai1','shanghai2'),
    REGION 'north' ZONE_LIST ('beijing1'),
    REGION 'south' ZONE_LIST ('shenzhen1');

这种架构下:

  • 上海作为主地域有两个机房(同城双活)
  • 北京和深圳各有一个备份机房
  • 数据同步延迟取决于地域间距离(通常≤50ms)

四、技术细节与避坑指南

4.1 网络配置要点

跨机房部署时,这些参数需要特别注意:

-- 调整网络超时参数(单位:微秒)
ALTER SYSTEM SET rpc_timeout = 2000000;  -- 跨机房建议2秒
ALTER SYSTEM SET trx_timeout = 5000000;  -- 事务超时5秒

-- 设置副本同步策略
ALTER SYSTEM SET enable_async_commit = false;  -- 必须同步提交

4.2 数据一致性权衡

根据业务需求选择同步级别:

-- 强一致性模式(默认)
SET GLOBAL ob_trx_timeout = 5000000;

-- 最终一致性模式(性能更高)
SET GLOBAL ob_read_consistency = 'WEAK';

4.3 监控与运维

推荐使用OceanBase自带的OCP监控平台,关键指标包括:

  • 副本同步延迟(__all_virtual_trans_stat
  • 网络往返时间(__all_virtual_network_stat
  • 事务冲突率(__all_virtual_trans_lock_stat

五、方案选型建议

5.1 应用场景匹配

  • 测试环境:单机房足够
  • 电商业务:同城双活
  • 金融支付:三地五中心

5.2 优缺点分析

同城双活优点

  • RTO(恢复时间目标)可控制在分钟级
  • 硬件故障自动切换
    缺点
  • 带宽成本高(需同步所有写入)

异地容灾优点

  • 能抵御地域性灾难
  • 符合金融监管要求
    缺点
  • 延迟明显增加(跨地域网络)
  • 部署复杂度指数级上升

5.3 注意事项

  1. 务必提前进行网络压测
  2. 异地部署建议使用专线网络
  3. 定期演练容灾切换(建议每季度一次)
  4. 监控系统要覆盖所有地域

六、总结

从单机房到多地域部署,OceanBase通过Zone和Region的抽象概念,提供了灵活的容灾方案选择。关键是根据业务的实际需求(RPO/RTO、预算等)选择合适的架构层级。建议从小规模开始,随着业务增长逐步升级架构,避免过度设计带来的资源浪费。