一、概要
前文已详细介绍了金仓 KES V9 数据库在单机环境下的部署要点。然而,伴随业务规模的不断扩张,单机架构的数据库系统可能会遭遇性能上限及可用性方面的挑战。为解决这一问题,金仓KES V9贴心提供了图形化的集群部署工具(deploy),该工具能够实现从单机到集群的一键式在线无缝扩展,同时具备灵活调整节点数量的能力,以适应多变的业务需求。
本文旨在通过一个测试环境的实例,全面展示将单机部署升级为读写分离集群的具体步骤与流程,旨在给大家提供一个实践参考。鉴于时间紧迫,本文难免存在疏漏之处,恳请各位读者不吝赐教,提出宝贵意见与指导。
二、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的自动恢复。
三、环境规划
原单机环境
节点名称 | 系统环境 | 数据库主要配置信息 | 说明 |
|---|---|---|---|
node05 | OS redhat7.8 IP 192.168.126.20 KingbaseES V009R001C002B0014 | data_directory=/home/kingbase/data port 54321 | 单节点 |
集群一主一备环境
注意事项:
- 时间同步:集群中所有节点必须要求做时钟同步,系统时间需保持一致(要求至少误差范围在2s以内);否则,可能会导致主库的WAL、快照等数据不能及时回收的影响。
- 网络连通性:确保主备节点IP互通(ping/ssh验证)。
- 备机环境检查:满足KES V9安装条件,建议提前配置好kingbase用户环境。参考《基于Linux系统的数据库软件安装软硬件环境要求》
四、集群架构
五、环境准备
1、主机环境准备
1.1 数据库system用户检查
集群在部署过程中,主要涉及两个数据库用户:
- system,超级用户,默认密码12345678ab
- esrep,超级用户,默认密码Kingbaseha110,集群部署过程中创建的用户,专门用于集群
1.2 禁用kingbased开机自启动服务
#查看kingbased服务是否已设为开机自启
systemctl list-dependencies |grep kingbased
chkconfig --list |grep kingbased
# 禁用开机启动服务
systemctl disable kingbased
1.3 安装kingbaseES客户端程序
集群部署工具deploy(ClientTools\guitools\DeployTools目录下),用于远程部署集群节点服务。若无则安装KingbaseES客户端。
1.4 配置主机名解析
编辑/etc/hosts,添加如下内容
192.168.126.20 node05
192.168.126.21 node06
192.168.126.110 ntpdserver1
2、备机环境准备
- 重复主节点步骤,确保环境一致。
- (可选)验证/home/kingbase/data目录权限:
chown -R kingbase:db2 /home/kingbase/data
chmod 750 /home/kingbase/data
六、集群创建
1、创建集群项目(原单节点操作)
首先打开deploy部署工具(位于ClientTools/guitools/DeployTools目录)
2、创建集群
节点通用配置
db&repmgr配置
配置集群DB参数,选择已有data路径
注意开启使用已存在的data目录功能,部分参数无法修改,保留原配置参数。
3、创建集群节点
添加主节点
配置securecmd服务
注意确保ssh已启用,才能启用securecmd服务。
节点配置
注意:点击“可选择”按钮,获取集群节点所需要的license文件路径。如果没有license文件,请设置为空,默认使用安装包内的临时license文件。
节点环境检测
配置信息预览确认
主节点集群部署
部署成功
配置securecmd服务
节点配置
节点环境检测
4、关于DB&&HA高级配置说明
dbPassword配置
默认密码为:12345678ab
,如果原库system密码不同请在此处修改为正确密码,否则报错。

HA虚拟vip地址配置
若配置VIP地址则需要绑定节点网卡并确保网卡名称一致。



七、配置用户kingbase 环境变量
vi ~/.bashrc
export KINGBASE_HOME=/home/kingbase/cluster/KES_Cluster/kingbase/kingbase
export PATH=$KINGBASE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$KINGBASE_HOME/lib:$LD_LIBRARY_PATH
export KINGBASE_DATA=/home/kingbase/data
export KINGBASE_PORT=54321
export KINGBASE_Client=/opt/Kingbase/ES/V9/kingbase
export PATH=/opt/Kingbase/ES/V9/kingbase/ClientTools/bin:$PATH
export PATH=/opt/Kingbase/ES/V9/kingbase/ClientTools/guitools/KStudio:$PATH
export PATH=/opt/Kingbase/ES/V9/kingbase/ClientTools/guitools/DeployTools:$PATH
source ~/.bashrc
八、集群创建之后检查
1、查看集群状态
repmgr cluster show # 查看主备节点状态
测试数据正常
使用deploy工具可以进行集群管理,如下图所示:
2、主备切换
3、一键集群检查

可以选择导出检查内容到指定目录


九、常见问题解决
1、端口冲突:
[Tue Feb 25 08:50:27 CST 2025] [ERROR] [54321] already occupied
[Tue Feb 25 08:50:27 CST 2025] [ERROR] [Data directory] kingbase.pid in data directory is already exists
需要关闭单机数据库服务
2、密码不一致导致部署失败:
specialPwd="`echo MTIzNDU2NzhhYg== 2>/dev/null | base64 -d`";/home/kingbase/cluster/KES_Cluster/kingbase/kingbase/bin/repmgr.sh create_primary_node ${specialPwd}
由于单机版数据库system用户不是初始密码导致,可以修改为初始密码,也可以修改home/kingbase/.encpwd密码文件中system密码。
3、目录权限问题:
[Tue Feb 25 09:33:23 CST 2025] [ERROR] [Data directory] invalid owner (expect: kingbase) or invalid permission (expect: 700 or 750) of "/home/kingbase/data"
备节点可以删除或者赋权该目录。
4、其他问题:
部分系统参数命令报错可以通过节点环境检查中《一键修改系统参数》解决。
十、总结
通过KES数据库集群部署工具deploy工具,KES V9可快速实现单机到读写分离集群的升级,显著提升数据库的性能与高可用性。优化后的集群支持自动故障转移,且通过图形化界面降低运维复杂度。
界面化扩容缩容部署工具使用方法参考产品手册:《KingbaseES数据库部署工具使用指南 》。




