KingbaseES V8R6集群维护之--修改数据库服务端口案例
案例说明:
对于KingbaseES数据库单实例环境,只需要修改kingbase.conf文件的‘port’参数即可,但是对于KingbaseES V8R6集群中涉及到多个配置文件的修改,并且在应用了sys_backup.sh工具建立物理备份后,还要修改备份对应的配置文件。
适用版本:
KingbaseES V8R6
集群节点信息:
[kingbase@node101 bin]$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.101 node101 # primary
192.168.1.102 node102 # standby

集群节点状态:
=注意:数据库服务port信息不但在配置文件存在,还被注册到了esrep数据库的nodes表中,在修改repmgr的配置文件后,还需要更新数据库中的表。=
[kingbase@node101 bin]$ ./repmgr cluster show
ID | Name | Role | Status | Upstream | Location | Priority | Timeline | Connection string
----+---------+---------+-----------+----------+----------+----------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------
1 | node101 | primary | * running | | default | 100 | 13 | host=192.168.1.101 user=system dbname=esrep port=54322 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3
2 | node102 | standby | running | node101 | default | 100 | 13 | host=192.168.1.102 user=system dbname=esrep port=54322 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3

一、集群和数据库及备份配置文件(all nodes)
=注意:需要修改集群和数据库的配置文件,需要先关闭集群停止数据库服务,然后再修改配置文件。以下port端口为修改前的端口。=
1、数据库相关配置文件
# 配置文件存储目录
[kingbase@node102 data]$ pwd
/home/kingbase/cluster/R6HA/kha/kingbase/data
# db服务启动配置
[kingbase@node102 data]$ cat es_rep.conf |grep port
port='54322'
# 主库连接信息配置
[kingbase@node102 data]$ cat kingbase.auto.conf |grep port
primary_conninfo = 'user=system connect_timeout=10 host=192.168.1.101 port=54322 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3 application_name=node102'
2、repmgr集群配置文件
# 配置文件目录
[kingbase@node101 etc]$ pwd
/home/kingbase/cluster/R6HA/kha/kingbase/etc
# repmgr配置
[kingbase@node102 etc]$ cat repmgr.conf |grep port
conninfo='host=192.168.1.102 user=system dbname=esrep port=54322 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3'
# 节点配置
[kingbase@node102 etc]$ cat all_nodes_tools.conf |grep port
db_port=54322
3、sys_backup.sh配置文件
#初始化配置
[kingbase@node101 bin]$ pwd
/home/kingbase/cluster/R6HA/kha/kingbase/bin
[kingbase@node101 bin]$ cat sys_backup.conf|grep port
# database port of single
_single_db_port="54322"
# sys_rman配置
[kingbase@node101 kbbr_repo]$ pwd
/home/kingbase/kbbr_repo
[kingbase@node101 kbbr_repo]$ cat sys_rman.conf |grep port
kb1-port=54322
二、修改数据库服务端口(all nodes)
对以上配置文件通过系统命令修改,本案例原服务端口(port = 54322),修改为:port = 54321;
三、启动集群
=如下所示,启动集群会出现节点注册失败,原因是,只修改了配置文件,数据库服务按照新的端口(54321)启动,但是esrep数据库中的节点注册信息没有修改,仍然按照原有的端口(54322)连接数据库注册,所以注册失败。=
[kingbase@node101 bin]$ ./sys_monitor.sh start
2022-06-09 21:31:54 Ready to start all DB ...
2022-06-09 21:31:54 begin to start DB on "[192.168.1.101]".
waiting for server to start.... done
server started
2022-06-09 21:31:56 execute to start DB on "[192.168.1.101]" success, connect to check it.
2022-06-09 21:31:57 DB on "[192.168.1.101]" start success.
2022-06-09 21:31:57 Try to ping trusted_servers on host 192.168.1.101 ...
2022-06-09 21:32:01 Try to ping trusted_servers on host 192.168.1.102 ...
2022-06-09 21:32:05 begin to start DB on "[192.168.1.102]".
waiting for server to start.... done
server started
2022-06-09 21:32:07 execute to start DB on "[192.168.1.102]" success, connect to check it.
2022-06-09 21:32:08 DB on "[192.168.1.102]" start success.
ID | Name | Role | Status | Upstream | Location | Priority | Timeline | Connection string
----+---------+---------+---------------+----------+----------+----------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------
1 | node101 | primary | ? unreachable | | default | 100 | ? | host=192.168.1.101 user=system dbname=esrep port=54322 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3
2 | node102 | standby | ? unreachable | node101 | default | 100 | ? | host=192.168.1.102 user=system dbname=esrep port=54322 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3
WARNING: following issues were detected
- unable to connect to node "node101" (ID: 1)
- node "node101" (ID: 1) is registered as an active primary but is unreachable
- unable to connect to node "node102" (ID: 2)
- node "node102" (ID: 2) is registered as an active standby but is unreachable
2022-06-09 21:32:08 There is no primary DB running, will do nothing and exit.

数据库服务端口:
[kingbase@node101 bin]$ netstat -antlp |grep 54321
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:54321 0.0.0.0:* LISTEN 30704/kingbase
三、更新集群节点注册信息
# 重新注册primary
[kingbase@node101 bin]$ ./repmgr primary register --force
INFO: connecting to primary database...
INFO: "repmgr" extension is already installed
NOTICE: primary node record (ID: 1) updated
You have new mail in /var/spool/mail/kingbase
# 重新注册standby
[kingbase@node102 bin]$ ./repmgr standby register --force
INFO: connecting to local node "node102" (ID: 2)
INFO: connecting to primary database
INFO: standby registration complete
NOTICE: standby node "node102" (ID: 2) successfully registered
# 查看节点状态信息
[kingbase@node102 bin]$ ./repmgr cluster show
ID | Name | Role | Status | Upstream | Location | Priority | Timeline | Connection string
----+---------+---------+-----------+----------+----------+----------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------
1 | node101 | primary | * running | | default | 100 | 13 | host=192.168.1.101 user=system dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3
2 | node102 | standby | running | node101 | default | 100 | 13 | host=192.168.1.102 user=system dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3
#如上所示,重新注册节点后,port信息被更新。
四、重启集群测试
[kingbase@node101 bin]$ ./sys_monitor.sh restart
.......
2022-06-09 21:35:28 repmgrd on "[192.168.1.102]" start success.
ID | Name | Role | Status | Upstream | repmgrd | PID | Paused? | Upstream last seen
----+---------+---------+-----------+----------+---------+-------+---------+--------------------
1 | node101 | primary | * running | | running | 32468 | no | n/a
2 | node102 | standby | running | node101 | running | 27753 | no | 2 second(s) ago
[2022-06-09 21:35:33] [NOTICE] redirecting logging output to "/home/kingbase/cluster/R6HA/kha/kingbase/log/kbha.log"
[2022-06-09 21:35:47] [NOTICE] redirecting logging output to "/home/kingbase/cluster/R6HA/kha/kingbase/log/kbha.log"
2022-06-09 21:35:43 Done.
# 如上所示,重启集群后状态正常。
五、查看sys_rman备份信息
[kingbase@node101 bin]$ ./sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase info
stanza: kingbase
status: ok
cipher: none
db (current)
wal archive min/max (V008R006C005B0041): 000000030000000000000023/0000000D0000000000000055
full backup: 20220426-113919F
timestamp start/stop: 2022-04-26 11:39:19 / 2022-04-26 11:39:27
wal start/stop: 00000007000000000000003A / 00000007000000000000003A
database size: 95.8MB, database backup size: 95.8MB
repo1: backup set size: 11.1MB, backup size: 11.1MB
# 如上所示,sys_rman备份信息查询正常。
六、总结
1、对于数据库服务端口的修改,无法在线修改,需要重启集群及数据库服务。
2、对于生产环境,在集群部署时,应该提前确定好数据库服务端口。
3、集群数据库服务端口修改需要在所有节点执行。
KingbaseES V8R6集群维护之--修改数据库服务端口案例的更多相关文章
- KingbaseES V8R6集群维护案例之---停用集群node_export进程
案例说明: 在KingbaseES V8R6集群启动时,会启动node_exporter进程,此进程主要用于向kmonitor监控服务输出节点状态信息.在系统安全漏洞扫描中,提示出现以下安全漏洞: 对 ...
- KingbaseES V8R6集群维护案例之--修改securecmdd工具服务端口
案例说明: 在一些生产环境,为了系统安全,不支持ssh互信,或限制root用户使用ssh登录,KingbaseES V8R6可以使用securecmdd工具支持主机之间的通讯.securecmdd工具 ...
- KingbaseES V8R6集群维护案例之--单实例数据迁移到集群案例
案例说明: 生产环境是单实例,测试环境是集群,现需要将生产环境的数据迁移到集群中运行,本文档详细介绍了从单实例环境恢复数据到集群环境的操作步骤,可以作为生产环境迁移数据的参考. 适用版本: Kingb ...
- KingbaseES V8R6集群维护案例之---将securecmdd通讯改为ssh案例
案例说明: 在KingbaseES V8R6的后期版本中,为了解决有的主机之间不允许root用户ssh登录的问题,使用了securecmdd作为集群部署分发和通讯的服务,有生产环境通过漏洞扫描,在88 ...
- KingbaseES V8R3集群维护案例之---在线添加备库管理节点
案例说明: 在KingbaseES V8R3主备流复制的集群中 ,一般有两个节点是集群的管理节点,分为master和standby:如对于一主二备的架构,其中有两个节点是管理节点,三个数据节点:管理节 ...
- KingbaseES V8R6集群管理运维案例之---repmgr standby switchover故障
案例说明: 在KingbaseES V8R6集群备库执行"repmgr standby switchover"时,切换失败,并且在执行过程中,伴随着"repmr stan ...
- kingbaseES V8R6集群备份恢复案例之---备库作为repo主机执行物理备份
案例说明: 此案例是在KingbaseES V8R6集群环境下,当主库磁盘空间不足时,执行sys_rman备份,将集群的备库节点作为repo主机,执行备份,并将备份存储在备库的磁盘空间. 集群架构 ...
- KingbaseES V8R6集群外部备份案例
案例说明: 本案例采用sys_backup.sh执行物理备份,备份使用如下逻辑架构:集群采用CentOS 7系统,repo采用kylin V10 Server. 一主一备+外部备份 此场景为主备双机常 ...
- KingbaseES R3 集群cluster日志切割和清理案例
案例说明: 对于KingbaseES R3集群的cluster日志默认系统是不做切割和清理的,随着运行时长的增加,日志将增长为一个非常大的文件,占用比较大的磁盘空间,并且在分析问题读取大文件时效率很低 ...
随机推荐
- 强化学习-Windows安装gym、atari和box2d环境
安装gym pip3 install gym pip3 install gym[accept-rom-license] 安装atari环境[可选] 下载安装VS build tools 如果出现 OS ...
- DDos、CC攻击与防御
DDoS介绍 DDoS是英文Distributed Denial of Service的缩写,意即"分布式拒绝服务",那么什么又是拒绝服务(Denial of Service)呢? ...
- 给你准备好了——50道Python面试题集锦(附答案)
Python是目前编程领域最受欢迎的语言.在本文中,我将总结Python面试中最常见的50个问题.每道题都提供参考答案,希望能够帮助你在2019年求职面试中脱颖而出,找到一份高薪工作.这些面试题涉及P ...
- Nacos配置失败(java.lang.IllegalStateException: failed to req API:/nacos/v1/ns/instance after all server)
解决: nacos服务器过载,可以删掉nacos文件夹下的data文件夹,重新启动.
- docker下node环境搭建
初始化⼀个NodeJs程序 以下操作必须已经安装了NodeJS. ⾸先创建⼀个空⽂件夹.并创建以下⽂件: server.js package.json Dockerfile .dockerignore ...
- AspectJ和AOP细节
AspectJ1. 简介 AspectJ:Java社区里最完整最流行的AOP框架.(在Spring中AOP是一种思想,而AspectJ是一种AOP的更明确具体实现) 在Spring2.0以上版本中,可 ...
- protobuf 的交叉编译使用(C++)
前言 为了提高通信效率,可以采用 protobuf 替代 XML 和 Json 数据交互格式,protobuf 相对来说数据量小,在进程间通信或者设备之间通信能够提高通信速率.下面介绍 protobu ...
- AI2(App Inventor 2) 离线版
介绍 我们的目标:搭建一个本地多用户的App Inventor 2 服务器目的:课堂教学,社团活动,兴趣学习优势:管理权限(用户管理,账号切换,资源打包),网络链接速度快,拥有配套服务.注意:每次退出 ...
- 查询postgresql表结构和索引
通过系统数据字典查询表结构 selectcol.table_schema,col.table_name,col.ordinal_position,col.column_name,col.data_ty ...
- 讲透JAVA Stream的collect用法与原理,远比你想象的更强大
大家好,又见面了. 在我前面的文章<吃透JAVA的Stream流操作,多年实践总结>中呢,对Stream的整体情况进行了细致全面的讲解,也大概介绍了下结果收集器Collectors的常见用 ...