1.什么是oGRAC?
oGRAC 是 openGauss 官方推出的 多主架构(Multi-Master)实现。它的核心价值在于:多个数据库实例由集群统一管理,所有节点都能承载读写事务,不再受传统主备架构“主库写、备库读”的限制。

这次验证主要聚焦三个核心命题,也是多主架构能否落地的关键:
- 跨节点 DDL/DML 是否实时同步;
- 并发写同一行时事务语义是否正确;
- 业务分散到多节点后,吞吐能否线性增长。
2.企业级硬件
本次测试基于 2 台鲲鹏 920 服务器,单机 32 vCPU / 29 GiB 内存,共享 5 TB 共享块存储,操作系统为 openEuler 22.03 LTS aarch64,oGRAC 版本为 1.0.0.B001。压测客户端采用华为 TaiShan 200 服务器,128 CPU / 1 TB 内存,资源压力完全集中在数据库和存储侧,测试结果具备参考价值。

3.oGRAC部署全流程
oGRAC 双节点部署的核心是共享盘配置和参数校验,整个流程可以概括为 4 步:
3.1 部署前必查项
- 共享盘必须按 WWN 映射:绝对不能通过
/dev/sdX 判断磁盘,因为盘符可能变化,要通过 udevadm 获取 WWN 后创建软链接,避免挂错盘;
- 补齐依赖:基础镜像默认缺少
numactl,需要手动安装,否则 NUMA 绑定步骤会失效;
- 时间同步必须做:推荐用
chrony 配置阿里云 NTP 源,节点时间不一致会导致集群无法启动;
- 关闭防火墙和 SELinux:避免影响节点间通信和数据库进程启动。


3.2 参数配置
解压 oGRAC 安装包后,核心工作是编辑 config_params_lun.json,重点配置节点 ID、CMS/DSS/oGRAC 端口、共享盘路径、Redo 文件数量与大小等参数。需要注意,首次启动初始化 Redo 文件时如果参数设置过大,启动时间会明显变长,小规格机器建议开启 auto_tune 自适应调参。

3.3 两节点依次安装
先执行预安装,再执行正式安装;节点 0 安装完成后,再安装节点 1。安装过程会自动部署 CMS(集群管理服务)、DSS(分布式存储服务)、oGRAC 数据库、监控 exporter 等组件,全程有日志输出,失败时可以直接查看 ograc_deploy.log。
在两节点上依次执行,建议等待节点 0 安装完毕后,再进行节点 1 安装。
首先执行预安装:
cd /data/ograc/ograc_connector/action
sh appctl.sh pre_install config_params_lun.json
预安装成功后,执行安装:
sh appctl.sh install config_params_lun.json
3.4 启动与状态校验
启动顺序是先 DSS 后 DB。首次启动节点 0 需要初始化共享 LUN 和数据库文件,耗时约 8 分钟;节点 1 启动会更快。启动完成后,通过 cms stat 查看集群状态,两个节点的 db 资源都为 ONLINE、数据库状态为 READ WRITE,即代表部署成功。

4.多写一致性
下面通过 3 个用例验证 oGRAC 的多写能力是否名副其实:
1. DDL 全局同步:Node0 创建表后,Node1 创建同名表直接报“对象已存在”;Node0 删除表后,Node1 可重新创建并插入数据查询,说明元数据全局一致。

2. DML 跨节点可见:Node0 插入 3 行数据,Node1 更新其中 1 行并提交,Node0 立刻就能查询到更新后的结果,已提交变更跨节点实时可见。

3. 跨节点行锁生效:两个节点关闭自动提交后,同时更新同一行数据,后提交的事务会被阻塞,直到持有锁的事务提交后才继续执行,最终结果符合行级锁串行化和事务隔离预期。

5.TPCC线性扩展
线性扩展是多主架构的核心优势。本次使用 BenchmarkSQL 5.0 做 TPCC 压测,配置为 200 仓、100 并发、75 业务会话、15 分钟压测时长,对比单节点和双节点的性能。
额外测试了 50 会话场景:单节点 tpmC=77702.41,双节点 tpmC=142327.82,线性扩展效率 91.58%,性能提升接近翻倍。这说明业务量上涨时只需要增加节点即可线性提升吞吐,无需再做复杂的读写分离或分库分表。

6.实战踩坑指南
- 基础镜像缺少
numactl:安装前必须补齐,否则 NUMA 相关步骤失效;
- CMS 启停不是异步的:执行
cms res -start db 返回成功后,再执行 cms stat 或登录数据库,避免操作冲突;
- RBPS 未注册为 CMS 资源:本版本执行
cms res -start rbps 会报资源不存在,需要单独执行 rbps_ctl start;
- RBPS 配置路径:有效配置在
/opt/ograc/cms/service/cfg/rbps.conf,不要找错路径;
- 时间同步不能省:节点时间不一致会导致 Node2(节点1)无法启动;
- 共享盘必须授权:创建 WWN 软链接后要给磁盘设置 777 权限,否则 DSS 组件无法访问磁盘。
7.总结与适用场景
oGRAC 多主架构的核心价值在于简化扩展逻辑、实现读写负载均衡、提升高可用能力,适合对一致性要求高、不想做复杂分库分表的中大型业务场景。本次验证证明,双节点部署下多写一致性完全符合预期,线性扩展效率接近 100%,可以作为生产环境选型的参考。
完整的 部署指南 和参数说明可参考 openGauss 官方文档。更多 openGauss 多主架构实战经验,也欢迎到云栈社区继续交流。