金仓 KES V9 读写分离集群:图形化部署实战解析
一、概要
前文已详细介绍了金仓 KES V9 数据库集群一键式脚本部署要点。其实金仓KES V9也提供了图形化的集群部署工具(deploy),该工具实现图形化部署KES集群,相比于命令行方式更简洁明了。
本文通过一个测试环境的实例,全面展示KES自带的图形化集群部署工具(deploy)部署KES读写分离集群的具体步骤与流程,供大家参考。
二、KES 集群简介
1、集群组件介绍
- repmgr:
用于执行管理任务的命令行工具
repmgr用于管理KingbaseRWC中的故障转移,可支持一主一备或一主多备,备库支持同步和异步模式。它提供了repmgr和repmgrd两个主要的工具。
- 远程通信工具:
sys_securecmdd是集群中自带的工具,集群监控、管理集群时通过sys_securecmdd安全执行命令。sys_securecmd是客户端。
- 守护进程:
每个数据库节点有一个repmgrd守护进程,主节点的repmgrd只监视本地数据库,备节点的repmgrd会同时监控本地数据库和主数据库。所有节点的状态信息存在repmgr.nodes表里,并通过流复制同步到所有备节点。
每个数据库节点都有一个kbha守护进程,其主要监控并守护repmgrd进程,同时对环境进行监控,包括:磁盘状态、信任网关状态。
kbha是KingbaseRWC集群的复制管理守护进程,Kbha启动repmgrd,并且执行KingbaseES的自动恢复。
三、环境规划
集群一主一备环境
- 时间同步:集群中所有节点必须要求做时钟同步,系统时间需保持一致(要求至少误差范围在2s以内);否则,可能会导致主库的WAL、快照等数据不能及时回收的影响。
- 网络连通性:确保主备节点IP互通(ping/ssh验证)。
- 备机环境检查:满足KES V9安装条件,建议提前配置好kingbase用户环境。参考《基于Linux系统的数据库软件安装软硬件环境要求》
四、集群架构
五、环境准备
1、主机环境准备
1.修改主机名和IP
#设置新的主机名
hostnamectl set-hostname node20
#查看主机名
hostnamectl status
2.配置主机名解析
#编辑/etc/hosts,添加如下内容
192.168.126.20 node05
192.168.126.21 node06
192.168.126.110 ntpdserver1
3.关闭防火墙
# 关闭防火墙
sudo systemctl stop firewalld
# 禁用防火墙
sudo systemctl disable firewalld
# 查看防火墙状态
sudo systemctl status firewalld
4.配置时间同步
5.修改sysctl.conf内核参数
所有节点服务器配置如下文件:
# vim /etc/sysctl.conf
添加以下内容:
fs.aio-max-nr= 1048576
fs.file-max= 6815744
kernel.shmall= 2097152
kernel.shmmax= 4294967295
kernel.shmmni= 4096
kernel.sem= 250 32000 100 128
net.ipv4.ip_local_port_range= 9000 65500
net.core.rmem_default= 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576
生效
sysctl -p
6.修改limits.conf资源使用参数
所有节点服务器配置如下文件:
# vim /etc/security/limits.conf
添加如下内容:
kingbase soft nofile 1000000
kingbase hard nofile 1000000
kingbase soft stack 32768
kingbase hard stack 32768
7.创建kingbase用户
不用root用户,创建kingbase用户进行部署,配置ssh互信和sudo免密
#创建用户&&设置密码
useradd kingbase && passwd kingbase
8.安装kingbaseES客户端程序
集群部署工具deploy(ClientTools\guitools\DeployTools目录下),用于远程部署集群节点服务。若无则安装KingbaseES客户端。
2、备机环境准备
重复主节点步骤,确保环境一致。
六、集群创建
1、创建集群项目
首先打开deploy部署工具(位于ClientTools/guitools/DeployTools目录)
$ ./ClientTools/guitools/DeployTools/deploy
2、创建集群
右键点击新创建的集群项目my_kes,选择创建集群。
我们集群起名为kingbase,默认安装路径为/home/kingbase/cluster/my_kes/kingbase。
db&repmgr配置
DB配置包含基本设置和高级设置,首先进入基本配置界面。
基本设置里包含了关于数据库的主要参数如端口,兼容模式,system密码等。可以根据需求选择对应的参数。
数据库zip包,选择zip包中db.zip即可。
注意:
V9版本兼容模式默认oracle,也可以选择mysql或pg。
本次为新建集群,不用勾选使用已存在的data目录(此为存在单机KES实例扩容使用),只能默认配置到/home/kingbase/cluster/集群项目名称/集群名称/data下,本文为/home/kingbase/cluster/my_kes/kingbase/kingbase/data。
dbPassword默认为123456ab,本次修改为kingbase@123。
高级配置包含了DB配置和高可用集群管理软件配置
注意:
高可用集群管理软件配置部分可以配置虚拟服务IP地址及故障切换方式,并且根据业务需求可以选择服务可用优先或者数据保护优先选项。
3、创建集群节点
添加主节点
选择添加节点。
配置securecmd服务
注意确保ssh已启用,才能启用securecmd服务。
节点配置
注意:
点击获取网卡,需要选择合适的网卡并获取IP地址(本文的IP地址的网卡名称为ens33,所有节点网卡名称都需保持一致)。
点击“可选择”按钮,获取集群节点所需要的license文件路径。如果没有license文件,请设置为空,默认使用安装包内的临时license文件。
节点环境检测
点击检查按键,自动对节点环境检查并给出意见。
注意标红部分为需要调整部分,可以一键修改系统参数按键修改。确认无问题之后,重新检查,然后选择下一步。
列出了该节点的集群配置信息以及DB配置信息,确认无误,选择确定。否则上一步重新修改。
节点部署
进入主节点部署环节,点击部署按键进行部署。
节点部署成功,点击确定,可以看到部署过程。部署失败,也可以通过提示确认问题,并修改重新部署。
此时完成主节点部署工作。同理继续添加备节点完成备节点部署工作。
添加备节点(同上)
4、kingbase集群启动
提示启动集群成功!恭喜您完成了kingbase集群配置工作。
deploy工具不仅可以配置集群还可以进行很多集群相关的管理工作。比如:集群启停、暂停与恢复、主备切换、一键检查、修改集群配置及集群密码等。
七、集群管理
1、集群启停
2、暂停与恢复
可以进行集群节点维护。
3、主备切换
4、一键集群检查
可以查看也可以选择导出检查内容到指定目录
5、修改配置参数
选择新增
查询最新值
修改参数值
6、修改集群密码
7、节点日志查询
创建节点日志检查条件并保存。
查看节点日志。
八、配置用户kingbase 环境变量
除了deploy图形化集群部署工具可以进行集群管理,也可以用命令repmgr: replication management tool for Kingbase管理集群,操作前需要配置正确的kingbase用户环境变量如下:
vi ~/.bashrc
export KINGBASE_HOME=/home/kingbase/cluster/my_kes/kingbase/kingbase
export PATH=$KINGBASE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$KINGBASE_HOME/lib:$LD_LIBRARY_PATH
export KINGBASE_DATA=/home/kingbase/cluster/my_kes/kingbase/kingbase/data
export KINGBASE_PORT=54321
source ~/.bashrc
九、常见问题解决
1、启用securecmd服务失败:
确保所有节点root密码一致。
部分系统参数报错可以通过节点环境检查中《一键修改系统参数》解决。
十、总结
利用 Deploy 图形化集群部署工具来部署 KES 集群,具有诸多优势,不仅操作流程便捷,能显著缩短部署耗时,还大幅降低了部署的技术门槛,使得非专业人士也能较为轻松地完成集群搭建任务,极大地提升了部署效率,优化了用户部署体验。
相比于脚本一键部署方式,图形化部署缺乏灵活性比如:




