GBase8a集群修改IP地址的方法是什么?

GBase8a集群修改IP地址的方法是什么?网络变更、IP地址重新规划、内外网分离等多种原因,需要改变数据库的IP地址。

您好
对于GBase 8a单机数据库来说,调整IP地址很简单,通常指需要调整应用程序的数据库访问IP即可。
对于MPP集群来说,修改集群内部组网IP,就比较麻烦了。GBase 8a集群新版本支持使用hostname搭建集群,但绝大部分上线项目还是使用的IP地址。

针对v8.6.2版本的GBase8a集群,记录了集群IP或nodeid的配置文件有三个:
/etc/corosync/corosync.conf -- ip地址
/var/lib/gcware/DATASERVER[.bak] -- ip和nodeid
/var/lib/gcware/DISTRIBUTION[.bak] -- nodeid
修改集群内部IP地址,需要对应的修改这三个文件。

  1. 先说下nodeid,nodeid是根据ip地址计算来的,集群内部有个函数inet_aton()可以通过ip计算nodeid,如计算172.16.3.55的nodeid(注意IP地址需要倒着计算)
    gbase> select inet_aton('55.3.16.172');

+--------------------------+
| inet_aton('55.3.16.172') |
+--------------------------+
| 922947756 |
+--------------------------+
1 row in set (Elapsed: 00:00:00.01)
2. /var/lib/gcware下的DATASERVER和DISTRIBUTION可能存在.bak文件,.bak表示是该文件的B版本,不带.bak的是A版本,在停止集群后,建议不管是否带有.bak文件,都进行IP地址和nodeid的修改。
当前在运行的集群使用的是A版本还是B版本,可以通过/var/lib/gcware/REDOLOG.* 文件查看
head -n13 /var/lib/gcware/REDOLOG.*
...
"distribution_version":"B",
"dataserver_version":"B",
"clusterstate_version":"B"