修改IP和端口号
在数据库集群使用过程中,由于网络部署调整、机房搬迁、网络故障等带来主机IP地址和端口号的变更。GaussDB 100提供了gs_om的changeip操作可以在不换主机、不改变集群其他配置的前提下,快速实现集群IP地址或者端口号的变更。
前提条件
- 确认集群状态正常后,停止集群。
- 基于新IP的用户互信已配置好。
- 数据库安装用户有足够的权限将新xml文件分发到所有主机的相同目录下。
注意事项
- 修改IP和端口号暂不支安装有GTS的集群。
- 仅换IP地址或者端口号,不换主机。
- 以数据库安装用户执行脚本。
- 外部表IP不处理。
- 修改IP支持集群backIP,sshIP以及实例侦听IP的修改,不支持HaIP。修改端口支持修改CN、ETCD、CM Server以及DN端口。
- 在修改集群IP过程中,出现异常情况(断电、宕机)时,通过“gs_om -t status”获取到的集群以及实例状态信息是不准确的。重新执行修改集群IP操作,正常结束后才能进行其它操作。
操作步骤
- 以root身份登录GaussDB 100的配置文件clusterconfig.xml所在的服务器。
- 修改集群部署配置文件clusterconfig.xml,把主机的IP和hostname或者端口号替换为新的。
- 切换为omm用户。
plat1:~ #su - omm
- 停止集群。
gs_om -t stop
- 退出集群用户。
exit
- 执行如下命令进行环境准备操作。
plat1:/opt/software/gaussdb/script #./gs_preinstall -U omm -G dbgrp -X /opt/software/gaussdb/clusterconfig.xml --alarm-type=1
其中omm为数据库管理员(也是运行集群的操作系统用户),dbgrp为运行集群的操作系统用户的群组名称,/opt/software/gaussdb/clusterconfig.xml为集群配置文件路径。
本地用户SYS的初始密码是Changeme_123。数据库管理员omm登录数据库集群的密码默认设置为gaussdb_123。为保证信息安全,请在成功安装集群并首次登录时,尽快修改本地用户SYS的初始密码和数据库管理员omm的默认密码。
本地免密登录CN时,登录命令是“zsql / as clsmgr -D cn_data_dir”,本地免密登录DN时,登录命令是“zsql / as sysdba -D dn_data_dir”。
- 切换为omm用户。
plat1:~ #su - omm
- 执行如下命令进行修改集群IP操作。
gs_om -t changeip -X /opt/software/gaussdb/clusterconfig.xml
clusterconfig.xml为修改后的配置文件。
说明:如果执行修改集群IP过程中出现错误,系统会调用自动回滚。如果自动回滚过程中,因为磁盘满等原因,导致自动回滚失败,则用户排除错误后,如需继续执行回滚则调用如下命令执行手动回滚。
gs_om -t changeip -X /opt/software/gaussdb/clusterconfig.xml --rollback
修改集群IP失败,回滚成功后,如果要继续执行修改集群IP操作,则执行步骤8;如果要放弃修改IP,则执行步骤9。
- (可选)修改IP操作失败回滚成功后,将集群恢复到修改IP之前的状态。
- 手动将配置文件恢复到修改IP之前的原始配置文件。
- 进入到工具脚本存放目录。
cd /opt/software/gaussdb/script
- 执行预安装命令。
./gs_preinstall -U omm -G dbgrp -X /opt/software/gaussdb/clusterconfig.xml --alarm-type=1
此处clusterconfig.xml为恢复到修改IP之前的原始配置文件。
- 启动集群。
gs_om -t start
涉及修改参数列表
集群的IP和端口号都需要使用gs_om工具进行修改。
表1 允许修改参数列表 实例类型
参数
说明
是否通过工具修改
集群主机信息(所有实例共用信息)
name
主机的hostname。
否
azName
az名称
否
azPriority
az优先级
否
backIp1
主机在后端存储网络中的IP地址(内网IP)。所有GaussDB 100主机使用后端存储网络通讯。
是
sshIp1
设置SSH可信通道IP地址(外网IP)。若无外网,则可以不设置该选项或者同backIp1设置相同IP。
是
sqlExpandNames
用于扩容时,增加所有新增主机的hostname。
否
clusterRings
用于缩容时,显示集群所有的环信息,集群环之间以分号“;”间隔,环内实例间以“,”间隔。
否
virtualIp
当前主机上配置的虚拟IP。可配置多个虚拟IP,每个虚拟IP使用“,”间隔。
是
CM
(cmDir参数需要在所有主机上配置,其他参数只需要在一个CM Server上配置。)
cmsNum
当前主机上需要部署CM Server的个数。
否
cmServerPortBase
主CM Server端口号,默认值5000。
是
cmServerListenIp1
CM Server用于侦听CM Agent连接请求或DBA集群管理请求的IP地址。
Value中左边IP为主CM Server侦听请求的IP地址,右边IP为备CM Server侦听请求的IP地址。未设置时,默认根据主、备CM Server所在主机的backIp生成。
是
cmServerHaIp1
主、备CM Server间通信的IP地址。
Value中左边为主CM Server的主机IP地址,右边为备CM Server的主机IP地址。未设置时,默认根据主、备CM Server所在主机的backIp生成。
是
cmServerlevel
采用多层CM Server时,用于设置CM Server属于哪一层级。目前只支持1级Server,值为1。
否
cmServerRelation
指定CM Server主备所部署的两台主机。CM Server主备关系由GaussDB 100仲裁确定。
否
cmDir
CM数据文件路径。保存CM Server和CM Agent用到的数据文件,参数文件等。
各主机上均需配置该参数。
否
CN
(所有参数只在CN上配置。)
cooNum
当前主机上需要部署的CN个数。目前一个主机只支持设置最多一个CN,如果主机上不部署CN,则配置文件中无需设置CN相关参数。
否
cooPortBase
CN实例端口号,默认值8000。
是
cooListenIp1
用于侦听连接请求的IP地址,既可以接受集群内部DN和其它CN的连接,也可以接受来自集群外部的连接。
cooListenIp需要至少配置一组内网IP和一组外网IP,且主机的内网IP必须配为第一组。示例如下:
<PARAM name="cooListenIp1" value="192.168.0.13"/> <PARAM name="cooListenIp2" value="10.10.0.13"/>
未设置时,使用当前主机的backIp生成。
这里配置了两组cooListenIp,则cooListenIp1必须配成机器的内网IP。
是
cooDir1
用于指定CN的数据目录。
否
DN
dataNum
当前主机上需要部署的主DN个数。如果主机上不部署DN,则配置文件中无需设置DN相关参数。如果主机上不部署主DN但有备DN,则该字段设置为0。
说明:如果当前主机上只有备DN而没有主DN,则该字段设置为0,并且需要设置备DN的端口号dataPortStandby,否则备DN的端口号会被设置为默认值。
否
dataPortBase
主DN的基础端口号。默认值40000。
当主机上有多个主DN时,其他DN的端口号在此基础上自动+2递增。
是
dataPortStandby
备DN基础端口号,默认值45000。
当主机上有多个备DN时,其他DN的端口号在此基础上自动+2递增。
是
dataListenIp1
侦听的IP地址,用于接受其他DN和CN的连接。未设置时,使用对应主机上的backIp1生成。
第一个IP是主DN所在主机的IP,第二个IP是备DN所在主机的IP。可配置成虚拟IP。
是
dataHaIp1
主、备DN通信的IP地址。未设置时,使用对应主机的backIp生成。
value中需设置主、备DN的IP地址。
是
dataNode1
用于指定当前主机上的主DN及其备DN的信息。编号从1开始。每一个DN的信息,使用逗号分隔,每部分信息分别表示:
- 主DN的数据目录。
- 备1DN所在主机的hostname。
- 备1DN的数据目录。
- 备2DN所在主机的hostname。
- 备2的数据目录。
否
ETCD
(为可选组件,如果确认要配置,所有参数只在需要配置的主机上写入。集群中配置ETCD的实例个数为3到7,建议为奇数个,最大不能超过7,建议为3)
etcdNum
当前主机上需要部署的ETCD个数。目前一个主机只支持设置最多1个ETCD,如果当前主机上不部署ETCD,则配置文件中无需设置ETCD相关参数,或者将此参数设置为0。示例如下:
<PARAM name="etcdNum" value="1"/>
否
etcdListenPort
侦听端口,默认端口2379,示例如下:
<PARAM name="etcdListenPort" value="18300"/>
是
etcdHaPort
如果未配置,默认端口2380,示例如下:
<PARAM name="etcdHaPort" value="18500"/>
是
etcdListenIp1
侦听IP,如果不配置默认取backIP,示例如下:
<PARAM name="etcdListenIp1" value="10.10.10.10"/>
是
etcdHaIp1
如果不配置默认取backIp,示例如下:
<PARAM name="etcdHaIp1" value="10.10.10.10"/>
是
etcdDir1
etcd配置路径,示例如下:
<PARAM name="etcdDir1" value="/gaussdb/data/data_etcd" />
否
示例
omm@plat1:~> gs_om -t changeip -X /opt/software/gaussdb/clusterconfigchangeip.xml Distributing files to all nodes. Successfully distributed files. Checking the cluster configuration differences. Creating the backup directory. Successfully created backup directory. Backup cluster configuration. Successfully backup cluster configuration. Modifying instance configuration files. Successfully modified instance configuration files. Restart Etcd cluster for changing Ip. Clean old cm and etcd for cluster. Successfully clean old cm and etcd for cluster. Restart etcd for cluster. Successfully restart Etcd cluster for changing Ip. Starting the cluster. Successfully started the cluster. Updating cluster node info. Successfully updated cluster node info. Checking the cluster status. Successfully checked the cluster status. Successfully changed cluster's IP addresses.
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」关注作者【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。评论
- 执行预安装命令。
- 停止集群。