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