找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

5967

积分

0

好友

755

主题
发表于 4 天前 | 查看: 4| 回复: 0

1.什么是oGRAC?

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

oGRAC 双节点架构示意图

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

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

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 内存,资源压力完全集中在数据库和存储侧,测试结果具备参考价值。

oGRAC 双节点硬件与配置信息表

3.oGRAC部署全流程

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

3.1 部署前必查项

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

oGRAC 共享存储设备规划表

共享盘 WWN 软链接配置命令

3.2 参数配置

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

config_params_lun.json 参数配置内容

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,即代表部署成功。

停止与启动 dss/db 资源的状态校验

4.多写一致性

下面通过 3 个用例验证 oGRAC 的多写能力是否名副其实:

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

跨节点 DDL 同步测试结果

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

跨节点 DML 实时可见测试

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

跨节点行级锁与事务一致性测试

5.TPCC线性扩展

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

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

TPCC 性能测试结果与线性扩展效率

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 官方文档。更多 openGauss 多主架构实战经验,也欢迎到云栈社区继续交流。




上一篇:OpenAI Agents API 公测发布:一次 API 调用构建生产级云智能体
下一篇:Claude Code 省钱反例:Token 限制把 Agent 调研团队改到跑不动
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-9-17 15:09 , Processed in 0.497387 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表