【华为根技术】openGauss主备HA部署之集群管理组件笔记

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

一、集群管理组件整体定位

openGauss 主备 HA(高可用)集群的核心目标是保障数据库服务持续可用,集群管理组件是实现这一目标的核心支撑,主要承担以下职责:
  1. 集群节点状态监控(主备节点存活、服务健康度)
  2. 主备角色管理(主节点选举、角色切换触发)
  3. 数据一致性保障(主备数据同步协调)
  4. 集群运维操作支持(启动、停止、扩容、故障恢复)

二、核心组件详解

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 核心作用

  1. 生成全局唯一的事务 ID(TXID)和快照
  1. 协调主备节点的事务可见性(确保主备节点对事务的判断一致)
  1. 主备切换时,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 前置条件

  1. 主备节点网络互通(SSH 免密登录、端口开放:5432 数据库端口、26000 心跳端口等)
  1. 主备节点系统环境一致(操作系统版本、内存、磁盘配置)
  1. 已完成 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 服务可用性 
生产环境建议优先使用 “同步模式”,并定期演练主备切换,确保故障时能快速恢复
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。