集群节点能ping通,但无法通过ssh连到节点,通过gncli也无法连到数据库,导致集群下发SQL时一直试图连接到该节点。长时间处于这种状态下导致大量SQL积压。如何解决?

warning: 这篇文章距离上次修改已过1628天,其中的内容可能已经有所变动。
方法1:
到机房关闭故障节点的gcware服务或者将服务器关机、断开网络连接。待设备问题解决后再连入集群。
方法2:
在无法到机房操作服务器的情况下,需要通过集群层命令从集群中将故障节点暂时离线,待故障解决后再恢复为正常状态。
操作方法:使用gcadmin setnodestate设置节点failure离线状态解决。
setnodestate命令语法:gcadmin setnodestate ip <state>
ip:要设置状态的节点ip;
State: 设置后的节点状态:

  • UNAVILIABLE:用于节点替换。
  • failure:标识集群故障,相当于offline 这时dml、ddl将不会下发到该节点直接记录fevent;
  • normal:当节点故障解决后可以直接将节点置为normal,这相当于节点重新online,这时gcrecover将恢复之前记录的feventlog,新发起的ddl、dml将重新下发到该节点。
    [info]注:[/info]

集群存在多个distribution时,如果设置一个节点为unavailable状态,会导致任何一个distribution中出现某个分片的主副分片都不可用得情况,则设置失败。

最后修改于:2020年11月16日 15:33

添加新评论