技术时刻丨KingbaseES数据库扩容:从单机到主备读写分离
一、概念介绍
金仓数据库读写分离集群的设计,核心源于两大现实痛点:一是硬件与软件系统客观存在不可靠性,故障难以避免;二是单台计算机的处理能力有限,无法承载海量数据的处理需求。
基于这一设计逻辑,当集群中数据副本数量≥1时,无论是硬件的升级、还是软件的迁移、单机的宕机或软件错误都无需停止对外服务,极大地保证系统的正常运行,并且降低了系统管理员和运维人员的工作量。
-
金仓数据库管理系统(KingbaseES)
金仓数据库管理系统(本文指代单机服务版本,下文也被称作单机版),其成员可能包括数据节点(data node)和备份节点(repo node)。
-
金仓数据守护集群软件(Kingbase Data Watch)
金仓数据守护集群软件用于构建基于流复制技术实现数据同步的主备数据库集群。该类集群由主库、备库和守护进程组成,其中主库提供数据库读写服务,备库作为主库的备份,守护进程负责检查各库及环境状态并实现自动故障转移。基于该软件,用户可构建同机房内、同城、异地的容灾及可用性方案,确保各种故障及灾害时的用户数据及数据库服务安全与连续。
-
金仓数据库读写分离集群软件(KingbaseRWC)
金仓数据库读写分离集群软件在金仓数据守护集群软件的基础上增加了对应用透明的读写负载均衡能力。相比数据守护集群,该类集群中所有备库均可对外提供查询能力,从而减轻了主库的读负载压力,可实现更高的事务吞吐率;该软件支持在多个备库间进行读负载均衡。其成员可能包括主节点(primary node)、备节点(standby node)、辅助节点(witness node)、备份节点(repo node)。
二、主备的同步流程

流程说明:
-
数据库Walwriter把产生的WAL日志写入磁盘;
-
WAL日志写入磁盘后,由Walsender进程将新增的日志读取出来并通过流的形式发送给备库;
-
备库Walreceiver进程将接收到的WAL日志写入本地WAL段文件;
-
备库Startup进程读取WAL日志进行重放,完成数据同步。
三、集群组件与功能介绍

-
repmgr
repmgr用于管理KingbaseRWC中的故障转移,可支持一主一备或一主多备,备库支持同步和异步模式。它提供了repmgr和repmgrd两个主要的工具。
-
repmgr
用于执行管理任务的命令行工具,例如:设置备库、将备库提升为主库、主备切换、显示集群状态。
-
repmgrd
主动监视集群各节点状态并执行某些任务的守护进程,主要包括:监视和记录复制性能、通过检测主库的故障并提升最合适的备库进行故障转移。
-
kbha
kbha是KingbaseRWC集群的复制管理守护进程。Kbha启动repmgrd,并且执行KingbaseES的自动恢复。
四、环境规划

|
节点名称 |
系统环境 |
主机名 |
数据库主要配置信息 |
说明 |
|
node1 |
centos 7.9 IP: 192.168.1.111 |
kingbase_primary |
data_directory=/data port 54321 |
单节点,扩容后为:主节点 |
|
node2 |
centos 7.9 IP: 192.168.1.112 |
kingbase_standby |
data_directory=/data port 54321 |
备节点 |
五、单节点安装参考文档
参见:
https://www.modb.pro/db/1892861696549597184
六、扩容步骤
1
配置/etc/hosts
cat >> /etc/hosts <<-EOF
kingbase_primary 192.168.1.111
kingbase_standby 192.168.1.112
EOF
2
安装依赖包
yum -y install lsof net-tools zip unzip <--所有节点执行
3
禁用kingbased开机自启动服务
#查看kingbased服务是否已设为开机自启
systemctl list-dependencies |grep kingbased
chkconfig --list |grep kingbased
# 禁用开机启动服务
systemctl disable kingbased
4
关闭数据库
su - kingbase
sys_ctl stop -D /data
5
启动数据库部署工具
su - kingbase
### 配置本地图形界面IP
export DISPLAY=192.168.1.2:0.0
export LANG=zh_CN.UTF-8
/KingbaseES/V9/ClientTools/guitools/DeployTools/deploy <--启动数据库部署工具
创建项目:



dbpassword: 需要输入,数据库安装时system密码。

新增节点:



修复所有检查报错:


standby节点添加请参考primary节点。

七、常见问题
1
上传securecmd失败

解决方案:需要用unzip解压,安装unzip包后,问题解决。
2
数据库部署工具添加主节点报错

创建集群时,选择已存在/data目录”,上面的dbpassword就需要修改为 数据库之前安装的system密码,否则就需要手工将密码修改为默认密码:12345678ab
alter user system with password ‘12345678ab’;

3
invalid owner or invalid permission

手工修改数据库目录仅限:
chmod -R 750 /data
八、参考资料
https://mp.weixin.qq.com/s/Lam25tD6TAX1x7QhiruD4Q
https://bbs.kingbase.com.cn/docHtml?recId=d16e9a1be637c8fe4644c2c82fe16444&url=aHR0cHM6Ly9iYnMua2luZ2Jhc2UuY29tLmNuL2tpbmdiYXNlLWRvYy92OS9hZG1pbi9nZW5lcmFsL2luZGV4Lmh0bWw
https://www.modb.pro/db/1894574855450800128
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)