kingbaseES V8R3集群运维案例之---集群部署前后ssh端口修改

发布时间 2023-09-18 16:03:49作者: KINGBASE研究院
           kingbaseES V8R3集群运维案例之---集群部署前后ssh端口修改

案例说明:
kingbaseES V8R3集群部署读写分离的集群是使用ssh的默认端口(22)部署,当改为非默认端口时,在部署中或部署后会因kingbasecluster脚本ssh的连接而失败,现提出以下解决方案。

适用版本:
KingbaseES V8R3

1、系统修改ssh监听端口

[root@node102 ~]#  cat /etc/ssh/sshd_config|grep -i port
# If you want to change the port on a SELinux system, you have to tell
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
Port 2222

[root@node102 ~]# cat /etc/services |grep ssh
ssh             2222/tcp                          # The Secure Shell (SSH) Protocol
ssh             2222/udp                          # The Secure Shell (SSH) Protocol

重启sshd服务或主机后,ssh连接的端口会改为指定端口。

验证ssh互信:

2、部署kingbasecluster(修改ssh端口)

如上图所示,修改ssh端口为指定端口(如2222)。

3、部署kingbasecluster出现错误

查看" /home/kingbase/cluster/kha/log/cluster.log"日志,可以获取ssh通讯错误信息。

4、修改kingbasecluster部署脚本(ssh通讯)(在所有node上完成)

以上脚本分别位于集群安装目录的(db/bin和kingbasecluster/bin)目录下:

[kingbase@srv1 bin]$ pwd
/home/kingbase/cluster/kha/db/bin

[kingbase@srv1 bin]$ ls -lh *.sh
-rwxrwxr-x 1 kingbase kingbase  13K 9月  15 20:25 all_monitor.sh
-rwxr-xr-x 1 kingbase kingbase 2.9K 6月  21 17:30 change_vip.sh
-rwxr-xr-x 1 kingbase kingbase 2.8K 6月  21 17:30 esHAmodel.sh
-rwxr-xr-x 1 kingbase kingbase 8.6K 6月  21 17:30 kingbase_checkpoint.sh
-rwxr-xr-x 1 kingbase kingbase  14K 9月  15 20:25 kingbase_monitor.sh
-rwxr-xr-x 1 kingbase kingbase 8.4K 6月  21 17:30 kingbase_promote.sh
-rwxr-xr-x 1 kingbase kingbase  46K 9月  15 20:25 network_rewind.sh
-rwxr-xr-x 1 kingbase kingbase 5.4K 6月  21 17:30 sync_async.sh
-rwxr-xr-x 1 kingbase kingbase 8.2K 6月  21 17:30 timingbackup.sh

[kingbase@srv1 bin]$ pwd
/home/kingbase/cluster/kha/kingbasecluster/bin
[kingbase@srv1 bin]$ ls -lh *.sh
-rwxrwxr-x 1 kingbase kingbase 13K 9月  15 20:26 all_monitor.sh
-rwxrwxr-x 1 kingbase kingbase 15K 9月  15 20:26 failover_stream.sh
-rwxrwxr-x 1 kingbase kingbase 26K 6月  20 15:49 restartcluster.sh

用vi编辑器替换脚本中的ssh命令语句,如下所示:(其中2222为ssh通讯端口)。

Tips:
在所有node上,替换完成后需做以下操作后,才能继续完成部署。

5、删除备库目录,重新创建备库"data"目录并授权

因为在部署kingbasecluster之前database已经部署完成,修改完脚本后会重新部署数据库,如果备库data目录存在,在做sys_basebackup时会报错,备库创建失败。如下图所示:

所以需要手工删除备库data目录,重新通过sys_basebackup创建备库:

备库执行以下操作:

[kingbase@srv2 db]$ rm -rf data
[kingbase@srv2 db]$ mkdir data
[kingbase@srv2 db]$ chmod 700 data

重新创建备库目录后,点击“继续”部署,完成集群的部署。

6、部署完成

7、查看主备复制状态

[kingbase@srv1 cluster]$ ksql -Usystem -W123456 TEST
ksql (V008R003C002B0061)
Type "help" for help.

TEST=# select usename,application_name,client_addr, client_hostname,sync_state from sys_stat_replication;
 usename | application_name | client_addr | client_hostname | sync_state
---------+------------------+-------------+-----------------+------------
 SYSTEM  | node2            | 192.168.1.3 |                 | sync
(1 row)

8、查看ip分配信息(主库节点)

9、通过脚本kingbase_monitor.sh一键启停

[kingbase@srv2 bin]$ ./kingbase_monitor.sh restart
-----------------------------------------------------------------------
2020-09-16 10:26:19 KingbaseES automation beging...
...
now we check again
=======================================================================
|             ip |                       program|              [status]
[    192.168.1.2]|             [kingbasecluster]|              [active]
[    192.168.1.3]|             [kingbasecluster]|              [active]
[    192.168.1.2]|                    [kingbase]|              [active]
[    192.168.1.3]|                    [kingbase]|              [active]
=======================================================================

Tips:
以上测试是在CentOS 7 及x86环境下完成,其他系统环境需要进一步测试,部署成功后,后续的主备故障切换还需要继续测试。

10、总结
以上案例是在部署前修改了ssh端口,如果是部署完成后,再修改ssh端口,对于集群,只需要修改对应脚本即可,脚本修改,参考文档中的内容。