【华为根技术】openGauss主备HA部署之集群管理组件笔记
【摘要】 一、集群管理组件整体定位openGauss 主备 HA(高可用)集群的核心目标是保障数据库服务持续可用,集群管理组件是实现这一目标的核心支撑,主要承担以下职责:集群节点状态监控(主备节点存活、服务健康度)主备角色管理(主节点选举、角色切换触发)数据一致性保障(主备数据同步协调)集群运维操作支持(启动、停止、扩容、故障恢复)二、核心组件详解2.1 集群管理工具(gs_om)2.1.1 功能定位...
一、集群管理组件整体定位
openGauss 主备 HA(高可用)集群的核心目标是保障数据库服务持续可用,集群管理组件是实现这一目标的核心支撑,主要承担以下职责:
- 集群节点状态监控(主备节点存活、服务健康度)
- 主备角色管理(主节点选举、角色切换触发)
- 数据一致性保障(主备数据同步协调)
- 集群运维操作支持(启动、停止、扩容、故障恢复)

二、核心组件详解
2.1 集群管理工具(gs_om)
2.1.1 功能定位
openGauss 集群的命令行运维入口,负责集群全生命周期的管理操作,是用户与集群交互的核心工具。
2.1.2 核心功能
|
功能分类
|
关键命令
|
作用说明
|
|
集群状态查询
|
gs_om -t status
|
查看集群节点状态、主备角色、同步状态
|
|
集群启停
|
gs_om -t start/stop
|
启动 / 停止整个集群(含所有节点服务)
|
|
节点管理
|
gs_om -t addnode/delnode
|
集群扩容(新增备节点)/ 缩容(删除备节点)
|
|
参数管理
|
gs_om -t reload
|
重载集群配置参数(无需重启集群生效)
|
|
故障处理
|
gs_om -t recover
|
集群故障后恢复(如备节点故障重建)
|
2.1.3 关键注意事项
执行命令需使用 root 或集群安装用户(如 omm),且需在集群安装节点(主部署节点)执行
敏感操作(如删除节点、强制切换)需确认集群状态正常,避免数据丢失
2.2 集群管理服务(Cluster Manager,CM)
2.2.1 功能定位
集群的 “大脑”,后台常驻服务,负责主备节点状态监控、故障检测、自动切换决策,是 HA 高可用的核心执行组件。
2.2.2 核心机制
心跳检测机制:主备节点之间通过 TCP 协议周期性发送心跳包(默认间隔 1 秒);若 CM 连续 3 次(可配置)未收到主节点心跳,判定主节点故障
主备选举机制:主节点故障时,CM 根据 “最大日志序号优先” 原则选举新主(确保数据最新的备节点成为主节点);支持手动触发选举(gs_ctl switchover)和自动选举(故障场景)
角色切换流程
2.2.3 核心配置参数(cluster_config.xml)
|
参数名
|
作用说明
|
默认值
|
调整建议
|
|
heartbeat_timeout
|
心跳超时时间(秒)
|
3
|
网络不稳定时可适当增大(如 5 秒)
|
|
switchover_strategy
|
切换策略
|
auto
|
生产环境建议保持 auto(自动切换)
|
|
max_sync_delay
|
最大同步延迟阈值(秒)
|
10
|
超过阈值触发告警,需检查网络或性能
|
2.3 全局事务管理器(GTM)
2.3.1 功能定位
保障集群分布式事务一致性的核心组件,主备 HA 集群中通常部署为GTM 主备模式(与数据库主备节点一一对应)。
2.3.2 核心作用
- 生成全局唯一的事务 ID(TXID)和快照
- 协调主备节点的事务可见性(确保主备节点对事务的判断一致)
- 主备切换时,GTM 同步切换,保障事务连续性
2.3.3 关键特性
- GTM 主备与数据库主备同步切换,无需手动干预
- 支持 “同步模式” 部署(GTM 主备数据实时同步),避免事务数据丢失
2.4 数据同步组件(WAL 日志同步)
2.4.1 功能定位
主备数据一致性的基础,通过同步 Write-Ahead Log(预写日志)实现备节点数据实时更新。
2.4.2 同步模式(HA 核心配置)
|
同步模式
|
特点说明
|
适用场景
|
|
同步模式(Synchronous)
|
主节点事务提交前,需确认备节点日志写入成功
|
核心业务,要求数据零丢失
|
|
异步模式(Asynchronous)
|
主节点事务提交无需等待备节点确认
|
非核心业务,追求高并发低延迟
|
|
半同步模式(Semi-Synchronous)
|
主节点等待备节点接收日志后提交
|
平衡数据安全性和性能
|
2.4.3 配置方式
通过postgresql.conf文件中的sync_standby_names参数配置:
- 同步模式:sync_standby_names = 'standby1'(指定备节点名称)
- 异步模式:sync_standby_names = ''
- 半同步模式:sync_standby_names = 'FIRST 1 (standby1, standby2)'(至少一个备节点接收日志)
三、部署配置关键步骤
3.1 前置条件
- 主备节点网络互通(SSH 免密登录、端口开放:5432 数据库端口、26000 心跳端口等)
- 主备节点系统环境一致(操作系统版本、内存、磁盘配置)
- 已完成 openGauss 基础安装(主节点先安装,备节点通过扩容添加)
3.2 核心配置文件
cluster_config.xml:集群拓扑配置文件,记录主备节点 IP、端口、组件部署路径等
<Cluster>
<Node Name="primary" IP="192.168.1.10" Port="5432" .../>
<Node Name="standby1" IP="192.168.1.11" Port="5432" .../>
<GTM>
<Node Name="gtm_primary" IP="192.168.1.10" Port="20001"/>
<Node Name="gtm_standby" IP="192.168.1.11" Port="20001"/>
</GTM>
</Cluster>
postgresql.conf:数据库核心配置文件,配置同步模式、日志级别、连接数等
pg_hba.conf:访问控制配置文件,允许主备节点之间的数据库连接
3.3 部署流程(简要)

主节点安装 openGauss 基础服务
编辑 cluster_config.xml,配置备节点信息
执行gs_om -t addnode添加备节点,自动完成备节点安装和数据初始化
执行gs_om -t status验证主备状态(主节点状态为 Primary,备节点为 Standby)
测试数据同步:主节点创建表并插入数据,备节点查询验证
四、日常运维核心操作
4.1 集群状态检查
# 查看集群整体状态
gs_om -t status --detail
# 查看主备同步状态
gs_ctl query -D /opt/opengauss/data
正常状态标识:主节点Primary、备节点Standby、同步状态Normal
4.2 主备切换操作
4.2.1 手动切换
# 在主节点执行,切换主备角色
gs_ctl switchover -D /opt/opengauss/data
4.2.2 强制切换(主节点故障场景)
# 在备节点执行,强制提升为新主
gs_ctl promote -D /opt/opengauss/data
注意一下下:强制切换后需检查原主节点数据一致性,恢复后需重新加入集群作为备节点
4.3 故障处理示例
4.3.1 备节点故障恢复
# 1. 检查故障原因(日志路径:/opt/opengauss/log)
# 2. 修复故障后,执行恢复命令
gs_om -t recover -m standby
# 3. 验证备节点状态
gs_om -t status
4.3.2 主节点故障恢复
备节点自动提升为新主(CM 自动触发)
修复原主节点故障后,执行:
# 原主节点作为新备节点加入集群
gs_om -t recover -m primary
五、常见问题与排查思路
5.1 主备切换失败
- 排查方向 1:备节点数据同步延迟过大(gs_om -t status查看同步延迟)
- 解决:等待备节点同步完成后再切换,或检查网络带宽
- 排查方向 2:CM 服务未正常运行(systemctl status opengauss-cm)
- 解决:重启 CM 服务(systemctl restart opengauss-cm)
5.2 备节点无法同步数据
- 排查方向 1:主备节点网络不通(ping、telnet 5432 端口)
- 解决:检查防火墙规则,开放相关端口
- 排查方向 2:同步模式配置错误(sync_standby_names参数)
- 解决:修改 postgresql.conf,重载配置(gs_om -t reload)
5.3 集群启动失败
- 排查方向 1:配置文件错误(cluster_config.xml 语法错误)
- 解决:检查配置文件格式,参考官方模板
- 排查方向 2:数据目录权限不足(集群用户无读写权限)
- 解决:修改数据目录权限(chown -R omm:dbgrp /opt/opengauss/data)
六、学习总结
集群管理组件的核心是 “状态监控 + 角色管理 + 数据同步”,三者协同实现 HA 高可用
gs_om 是运维操作入口,CM 是自动故障处理核心,GTM 保障事务一致性,WAL 同步保障数据一致性
部署和运维的关键是 “配置正确 + 状态监控 + 故障快速响应”,重点关注主备同步状态和 CM 服务可用性
生产环境建议优先使用 “同步模式”,并定期演练主备切换,确保故障时能快速恢复
gs_om 是运维操作入口,CM 是自动故障处理核心,GTM 保障事务一致性,WAL 同步保障数据一致性
部署和运维的关键是 “配置正确 + 状态监控 + 故障快速响应”,重点关注主备同步状态和 CM 服务可用性
生产环境建议优先使用 “同步模式”,并定期演练主备切换,确保故障时能快速恢复
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者

评论(0)