【问题描述】
修复节点失败
【常见原因及解决方法汇总】
1、gs_replace -t config -h XXX. 报错roach key不存在

原因:因为各种原因实际集群安装失败了,所有在安装之后没有生成。 解决办法:手动生成,gs_guc generate -S default -o roach -D $GAUSSHOME/bin
2、gs_replace -t config -h XXX. 报错obs key不存在

原因:因为各种原因实际集群安装失败了,所有在安装之后没有生成。 解决办法:手动生成,gs_guc generate -S default -D $GAUSSHOME/bin
3、修复的时候,报错cn的目录不为空

原因:多为环境原因导致,在修复的时候确认是否一次下发了两个进程,或者环境被其他人一起使用。 解决办法:重入。
4、故障实例目录,导致修复失败

原因:实例目录未root组,制造故障时候不能删除。 解决办法:先手动在root用户下创建改实例目录,然后参照其他节点的目录权限&属组改正确,方可重入。
5、GAUSS-51632,初始化失败

原因:可能是-h后指定的hostname或者IP反了。 解决办法:确认是agent,就制定大网Ip。ssh模式的就制定hostname。
6、GAUSS-51607,Failed to start xxxx

原因:机器重启或者虚拟IP不在,build完成之后gs_ctl start失败,确认坏节点上的gs_ctl日志中是否如截图 解决办法:先确认虚拟IP在不,然后可以ping。通了之后重入。
7、节点修复,某些二进制缺失,导致修复失败

原因:$GAUSSHOME/bin下的有些二进制文件确认,因为二进制直接解包得来,缺失后无法修复。 解决办法:工具报错提示,需要不换IP的方式去做节点替换。
8、修复时进行build数据时内存不足无法build,导致超时

原因:系统内存不足,导致dn无法build数据,导致修复超时。 解决办法:清理系统内存,重新进行修复。
9、无法取消此约束《修复时集群内所有的节点都不能宕机,如果某台机器宕机会导致cm agent实例不可用,修复会失败》
原因:
(1)在修复时宕机导致无法连接,无法更新实例上一些证书类文件,可能实例之间通讯连接,认证会存在故障。
(2)cma上报本节点实例状态,宕机的数量可能会存在cms故障,cms获取不到真实的需要修复的实例状态及其他实例状态,实例修复无法清楚是否满足,产生误判,cma挂掉了,是否cms可用未知。cm_ctl query -Cvdi
(3)混合故障场景多,是否会引发其他一些未知问题。
解决办法:要去修复时发现集群内有节点宕机(urlopen error等错误信息),先要去恢复机器,如果无法恢复。需通过节点替换将此宕机机器换掉。




