IT 邦德

Oracle RAC 的“多主神话”正式被国产掀翻!

1.什么是oGRAC?

oGRAC是openGauss官方推出的多主架构(Multi-Master)实现,核心价值是:多个数据库实例由集群统一管理,所有节点都可以承载读写事务,彻底摆脱传统主备架构“主库写、备库读”的限制。

Image

本次验证聚焦三个核心命题,也是多主架构能否落地的关键:

  1. 跨节点DDL/DML是否实时同步;
  2. 并发写同一行时事务语义是否正确;
  3. 业务分散到多节点后,吞吐能否线性增长。

2.企业级硬件

本次测试基于2台鲲鹏920服务器,单机32vCPU/29G内存,共享5TB共享块存储,操作系统为openEuler 22.03 LTS aarch64,oGRAC版本为1.0.0.B001。压测客户端采用华为TaiShan 200服务器,128CPU/1TB内存,资源压力完全集中在数据库和存储侧,测试结果具备参考性。

Image

3.oGRAC部署全流程

oGRAC双节点部署的核心是共享盘配置和参数校验,整个流程可以概括为4步:

3.1 部署前必查项

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

3.2 参数配置

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

Image

3.3 两节点依次安装

先预安装再正式安装,节点0安装完成后再安装节点1,安装过程会自动部署CMS(集群管理服务)、DSS(分布式存储服务)、oGRAC数据库、监控exporter等组件,全程有日志输出,失败可以直接查ograc_deploy.log。

在两节点上依次执行,建议等待节点 0 安装完毕后,再进行节点 1 安装。首先执行预安装:cd /data/ograc/ograc_connector/actionsh 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即表示部署成功。

Image

4.多写一致性

本次验证通过3个用例证明oGRAC的多写能力不是噱头:

  1. DDL全局同步:Node0创建表后,Node1创建同名表直接报“对象已存在”;Node0删除表后,Node1可重新创建并插入数据查询,说明元数据全局一致;

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

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

    Image

5.TPCC线性扩展

线性扩展是多主架构的核心优势,本次用BenchmarkSQL 5.0做TPCC压测,200仓、100并发、75业务会话、15分钟压测时长,对比单节点和双节点的性能:

额外测试了50会话场景:单节点tpmC=77702.41,双节点tpmC=142327.82,线性扩展效率91.58%,性能提升接近翻倍,说明业务量上涨时只需要加节点就能线性提升吞吐,无需做复杂的读写分离、分库分表。

Image

6.实战踩坑指南

  1. 基础镜像缺少numactl:安装前必须补齐,否则NUMA相关步骤失效;
  2. CMS启停不是异步的:执行cms res -start db返回成功后,再执行cms stat或登录数据库,避免操作冲突;
  3. RBPS未注册为CMS资源:本版本执行cms res -start rbps会报资源不存在,需要单独执行rbps_ctl start;
  4. RBPS配置路径:有效配置在/opt/ograc/cms/service/cfg/rbps.conf,不要找错路径;
  5. 时间同步不能省:节点时间不一致会导致Node2(节点1)无法启动;
  6. 共享盘必须授权:创建WWN软链接后要给磁盘设置777权限,否则DSS组件无法访问磁盘。

7.总结与适用场景

oGRAC多主架构的核心价值是简化扩展逻辑、实现读写负载均衡、提升高可用能力,适合对一致性要求高、不想做复杂分库分表的中大型业务场景。本次验证证明双节点部署下多写一致性完全符合预期,线性扩展效率接近100%,可以作为生产环境选型的参考。

完整部署指南和参数说明可以参考openGauss官方文档,点击左下方阅读原文跳转!