南大通用GBase 8a集群报错metadata is incomplete on localhost

GBase 8a数据库集群,在本地的gbase.table_distribution表里保存了所有express引擎表的元数据,如果其损坏,将造成本机gcluster无法获取表信息,将报metadata is incomplete on localhost。

原因

当前连接节点集群层的table_distribution 表被设置为不一致标志。
可以通过
gcadmin showdmlevent
查看到

解决方案

调度 = coordinator节点,也就是gcluster节点。

单个调度节点

只有手工清掉event,请参考

GBase 8a手工清理Event

多调度节点,等待自动完成

如果是多节点,基本在1-2分钟内自动恢复。

多调度节点,连接到其它可用IP

期间可以尝试先连接其它非故障节点,等自动修复。

影响

在故障期间,连接该节点的SQL,查询express表时,会因为这个元数据表被设置不一致标志而报如题目的错误,直到恢复。

常见的datestate不一致的原因和数据库内部后台处理过程,请参考

GBase 8a集群常见故障DataState状态为1,查看同步进度