Oracle RAC 的“多主神话”正式被国产掀翻!
1.什么是oGRAC?
oGRAC是openGauss官方推出的多主架构(Multi-Master)实现,核心价值是:多个数据库实例由集群统一管理,所有节点都可以承载读写事务,彻底摆脱传统主备架构“主库写、备库读”的限制。
本次验证聚焦三个核心命题,也是多主架构能否落地的关键:
跨节点DDL/DML是否实时同步; 并发写同一行时事务语义是否正确; 业务分散到多节点后,吞吐能否线性增长。
2.企业级硬件
本次测试基于2台鲲鹏920服务器,单机32vCPU/29G内存,共享5TB共享块存储,操作系统为openEuler 22.03 LTS aarch64,oGRAC版本为1.0.0.B001。压测客户端采用华为TaiShan 200服务器,128CPU/1TB内存,资源压力完全集中在数据库和存储侧,测试结果具备参考性。
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/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即表示部署成功。
4.多写一致性
本次验证通过3个用例证明oGRAC的多写能力不是噱头:
DDL全局同步:Node0创建表后,Node1创建同名表直接报“对象已存在”;Node0删除表后,Node1可重新创建并插入数据查询,说明元数据全局一致;
DML跨节点可见:Node0插入3行数据,Node1更新其中1行并提交,Node0立刻就能查询到更新后的结果,已提交变更跨节点实时可见;
跨节点行锁生效:两个节点关闭自动提交后,同时更新同一行数据,后提交的事务会被阻塞,直到持有锁的事务提交后才继续执行,最终结果符合行级锁串行化和事务隔离预期。
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官方文档,点击左下方阅读原文跳转!