南大通用GBase 8a 脑裂导致的gcadmin报错GC_AIS_ERR_TRY_AGAIN

GBase 8a 数据库集群,通过corosync/gcware服务的投票机制,确保集群层的一致性,但出现脑裂时,会导致集群状态报错 GC_AIS_ERR_TRY_AGAIN。

报错样例

这个错误,不是一个节点,而是所有节点都报错,整个集群都不可用了。如果只是个别节点报错,则不是脑裂问题,可以排查corosync.log看什么原因。

原因

目前已知最常见直接原因,是管理节点数量太多,少许的外部因素触发,比如网络,CPU负载高等,导致管理程序内部出现紊乱。

解决方案

根据工程经验,将整个集群的管理都STOP, 然后再逐台START。强调一遍,不要restart, 也不要一台一台重启,要全部STOP后,逐台启动。

更佳方案,是减少管理节点数量,建议3-9个足以。