更新时间:2026-07-28 GMT+08:00
操作指导
前提条件
- 软硬件要求:
- 主备节点间网络互通,且防火墙已开放数据库端口和高可用通道端口。
- 备节点磁盘空间充足,至少能容纳一份完整的数据副本。
- 依赖项:
- 主备节点GaussDB软件版本必须完全一致。
- 主节点状态正常。
- 权限要求: 执行重建操作的操作系统用户须对主备节点的数据目录有读写权限,并且拥有数据库管理员权限。
语法
gs_ctl build -D DATADIR -Z NODE-TYPE [-b MODE] [-M SERVERMODE]
注意事项
- 高危操作:重建过程中,目标备节点上的旧数据将被全部清除。请确保操作对象正确,避免误操作。
- 性能影响:重建操作会大量消耗主节点的网络和存储资源,务必在业务低峰期或维护窗口进行。
- 监控:重建过程耗时较长,建议在操作后持续监控集群状态、网络流量和主节点性能。
操作步骤
以下演示当备节点(dn_6002)故障后,通过命令行手动触发重建的流程。
- 登录目标节点。
以数据库用户(非root用户)登录到目标节点。
若数据库进程部署在沙箱或容器中,需要进入对应的沙箱或容器。
- 查询目标节点信息。
cm_ctl query -Cvid
通过节点状态,确认目标节点是否存在异常(状态非Normal)。
通过节点名称,确认目标节点的数据目录路径。例如:/var/lib/engine/data1/data/dn_6002(下述步骤以该路径作为演示)。
- 执行重建命令。
- 自动重建。
gs_ctl build -D /var/lib/engine/data1/data/dn_6002 -Z datanode -b auto -M standby
- 全量重建。
gs_ctl build -D /var/lib/engine/data1/data/dn_6002 -Z datanode -b full -M standby
- 增量重建。
gs_ctl build -D /var/lib/engine/data1/data/dn_6002 -Z datanode -b incremental -M standby
- 以备节点做服务端,进行自动重建。
gs_ctl build -D /var/lib/engine/data1/data/dn_6002 -Z datanode -b standby_auto -M standby
- 以备节点做服务端,进行全量重建。
gs_ctl build -D /var/lib/engine/data1/data/dn_6002 -Z datanode -b standby_full -M standby
- 以备节点做服务端,进行增量重建。
gs_ctl build -D /var/lib/engine/data1/data/dn_6002 -Z datanode -b standby_incremental -M standby
- 自动重建。
- 监控重建进度。
gs_ctl querybuild -D /var/lib/engine/data1/data/dn_6002
- 验证重建结果。
当备节点状态显示为Normal后,连接到主节点执行查询,验证备节点是否在同步流复制状态。
- Quorum
SELECT application_name, state, sync_state, sync_priority FROM pg_stat_replication;
如果查询结果中能看到该备节点,且state为Streaming,则表明重建成功,同步正常。
- DCF
SELECT channel, peer_role, peer_dcf_role, peer_state FROM gs_paxos_stat_replication;
如果查询结果中能看到对应IP的备节点,且peer_state为Normal,则表明重建成功,同步正常。
- Quorum
父主题: 主备重建