GBase 8a 数据库集群支持修改IP,在IPV4地址环境,除了IP,还需要修改nodeid,如果忘记修改,会导致集群异常,包括部分节点显示重复等。
目录导航
如下是一个典型的异常情况
NodeName, IpAdderss出现了两行重复的。V86版本
排查过程
如上gcware由于只使用IP,是正常的,所以corosync.conf或gcware.conf是正常的,无需排查。
检查/var/lib/gcware/DATASERVER 和 DATASERVER.bak , 以及 DISTRIBUTION和DISTRIBUTION.bak 发现里面的IP出现错误的nodeid。
10.0.2.107这个IP,计算后的nodeid应该是1795293194, 现有的1778515978对应于10.0.2.106。
[root@localhost gcware]# cat DATASERVER
{
"version":1,
"epoch":5,
"list_entries":1,
"nodes":[
{
"nodeid":1778515978,
"nodename":"node1",
"ipaddr":"::ffff:10.0.2.107"
}
]
}[root@localhost gcware]# cat DISTRIBUTION
{
"version":1,
"epoch":11,
"list_entries":1,
"distributions":[
{
"distributionid":1,
"list_entries":1,
"pairs":[
{
"segmentid":1,
"prinodeid":1778515978,
"ksafe":0
}
]
}
]
}
解决方案
将所有管理节点的数据库服务停下来,然后把这个文件里所有的node1对应的nodeid全部更正,所有的管理节点都要改。然后启动,恢复正常。
总结
节点更改IP,或者虚拟机复制时,除了IP需要改,nodeid也需要改。 或者干脆全部卸载了重新安装也可以。 但如果继续用的,一定要改掉。
ipv4计算nodeid的方法,请参考 GBase 8a集群根据IP(ipv4)计算nodeid方法