暂无图片
暂无图片
5
暂无图片
暂无图片
暂无图片

金仓 KES V9 一键扩容实战:从单机到读写分离集群,高可用架构全解析

原创 jiayou 2025-02-26
907

一、概要

前文已详细介绍了金仓 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

单节点

集群一主一备环境

节点名称

系统环境

数据库主要配置信息

说明

node05

OS redhat7.8

IP 192.168.126.20

KingbaseES V009R001C002B0014

data_directory=/home/kingbase/data

port 54321

主节点

node06

OS redhat7.8

IP 192.168.126.21

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数据库部署工具使用指南 》

最后修改时间:2025-02-27 10:08:39
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论