kingbaseES V8R3集群运维案例之---集群部署前后ssh端口修改
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端口,对于集群,只需要修改对应脚本即可,脚本修改,参考文档中的内容。
kingbaseES V8R3集群运维案例之---集群部署前后ssh端口修改的更多相关文章
- KingbaseES V8R3集群运维案例之---主库系统down failover切换过程分析
案例说明: KingbaseES V8R3集群failover时两个cluster都会触发,但只有一个cluster会调用脚本去执行真正的切换流程,另一个有对应的打印,但不会调用脚本,只是走相关的 ...
- KingbaseES V8R3集群运维案例之---用户自定义表空间管理
案例说明: KingbaseES 数据库支持用户自定义表空间的创建,并建议表空间的文件存储路径配置到数据库的data目录之外.本案例复现了,当用户自定义表空间存储路径配置到data下时,出现的故障问 ...
- KingbaseES V8R3集群运维案例之---kingbase_monitor.sh启动”two master“案例
案例说明: KingbaseES V8R3集群,执行kingbase_monitor.sh启动集群,出现"two master"节点的故障,启动集群失败:通过手工sys_ctl启动 ...
- KingbaseES V8R3集群运维案例之---cluster.log ERROR: md5 authentication failed
案例说明: 在KingbaseES V8R3集群的cluster.log日志中,经常会出现"ERROR: md5 authentication failed:DETAIL: password ...
- KingbaseES V8R6集群运维案例之---repmgr standby promote应用案例
案例说明: 在容灾环境中,跨区域部署的异地备节点不会自主提升为主节点,在主节点发生故障或者人为需要切换时需要手动执行切换操作.若主节点已经失效,希望将异地备机提升为主节点. $bin/repmgr s ...
- PB 级大规模 Elasticsearch 集群运维与调优实践
PB 级大规模 Elasticsearch 集群运维与调优实践 https://mp.weixin.qq.com/s/PDyHT9IuRij20JBgbPTjFA | 导语 腾讯云 Elasticse ...
- 《跟老男孩学Linux运维:Web集群实战》读书笔记
Linux 介绍 Linux 安装 Linux 调优 Web 基础 Nginx 应用 LNMP 应用 PHP 缓存加速 Nginx 调优 MySQL 应用 NFS 网络文件共享 Nginx 反向代理与 ...
- 集群运维ansible
ssh免密登录 集群运维 生成秘钥,一路enter cd ~/.ssh/ ssh-keygen -t rsa 讲id_rsa.pub文件追加到授权的key文件中 cat ~/.ssh/id_rsa.p ...
- 阿里巴巴大规模神龙裸金属 Kubernetes 集群运维实践
作者 | 姚捷(喽哥)阿里云容器平台集群管理高级技术专家 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击即可完成下载. 导读:值得阿里巴巴技术人骄傲的是 2019 ...
- 大数据运维尖刀班 | 集群_监控_CDH_Docker_K8S_两项目_腾讯云服务器
说明:大数据时代,传统运维向大数据运维升级换代很常见,也是个不错的机会.如果想系统学习大数据运维,个人比较推荐通信巨头运维大咖的分享课:https://url.cn/5HIqOOr,主要是实战强.含金 ...
随机推荐
- SSH通道
线下到线上 通过http协议 线上到线下 不能走http,只能通过ssh通道,建立玩ssh通道后,线上线下就可以通道ssh通道进行通信 如:线上为ssm项目 线下为linux项目,二者之间lin ...
- Spring源码之容器的功能拓展-ApplicationContext
目录 一.解析预备 刷新上下文环境 例如对系统属性或者环境变量进行校验和准备 二.初始化 BeanFactory 并进行 Xml 配置文件的读取 三.对BeanFactory 各种功能填充 四.激活以 ...
- 新零售SaaS架构:订单履约系统的应用架构梳理
订单履约系统的核心能力 通过分析订单履约的全流程和各个业务活动,我们可以梳理出订单履约的核心业务链路,基于业务链路,我们抽象出订单履约系统的三大系统能力,分别为履约服务表达.履约调度.物流配送. 履约 ...
- os.path.relpath和os.path.basename,返回文件路径中的文件名
from os import path print(path.relpath("/home/hpcadmin/lw/demo.py", start="/home/hpca ...
- ubuntu 中 docker 每次都输入 sudo 命令
查看用户组及成员 sudo cat /etc/group | grep docker 可以添加docker组 sudo groupadd docker 添加用户到docker组 sudo gpassw ...
- 【Python OO其一】构造函数__init__()
Python对象包括三个部分:id(identity识别码).type(对象类型).value(对象的值) __ init __()构造函数 __ init __()方法应用定义构造函数,作用是在实例 ...
- 【Azure 应用服务】通过 Web.config 开启 dotnet 应用的 stdoutLog 日志,查看App Service 产生500错误的原因
问题描述 Web App(App Service) 经常出现500错误,但是通过高级管理工具(Kudu站点)查看了所有的日志,均没有定位到具体的原因,有那些方式可以查看到更多的信息呢? 问题解答 HT ...
- Volatile关键字原理
转载请标明:https://www.cnblogs.com/tangZH/p/15113505.html 一.如果一个变量被volatile关键字修饰,那么所有线程都是可见的.所谓可见就是,当一条线程 ...
- 牛客“迎新春,过大年”多校程序设计竞赛A题
题目描述: 这里有个小trick 当时也看到数据范围的问题了 \(n是1e6 \quad \sum_{i=1}^na[i]<=5e7\) 我们考虑不同的数\(1 \quad 2 \quad .. ...
- ThreadLocal父子间通信的四种解决方案
ThreadLocal父子间通信的四种解决方案 ThreadLocal 是存储在线程栈帧中的一块数据存储区域,其可以做到线程与线程之间的读写隔离. 但是在我们的日常场景中,经常会出现父线程需要向子线程 ...