介绍
金仓数据库读写分离集群软件(简称:KingbaseRWC)在金仓数据守护集群软件的基础上增加了对应用透明的读写负载均衡能力。通过配置JDBC连接串策略,可以让部分读请求在备库执行,从而达到减轻主库压力的目的。
环境
操作系统版本: CentOS Linux release 7.6.1810
数据库版本:KingbaseES_V009R001C002B0014
IP 规划:
| 服务器IP | 角色 |
|---|---|
| 192.168.20.251 | 主节点 |
| 192.168.20.252 | 备节点 |
| 192.168.20.253 | witness节点 |
部署过程
服务器配置
检查操作系统信息
[root@ks01 /]# cat /etc/*release*
CentOS Linux release 7.6.1810 (Core)
Derived from Red Hat Enterprise Linux 7.6 (Source)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
CentOS Linux release 7.6.1810 (Core)
CentOS Linux release 7.6.1810 (Core)
cpe:/o:centos:centos:7
检查系统内存与存储空间
[root@ks01 /]# free -m
total used free shared buff/cache available
Mem: 23947 726 19761 102 3459 21295
Swap: 8063 0 8063
[root@dmdem kingbasev9]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 8.9M 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/mapper/centos-root 92G 32G 60G 35% /
/dev/sda1 197M 146M 51M 75% /boot
tmpfs 396M 0 396M 0% /run/user/2001
配置内核参数
3个节点均执行
vi /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
生效
/sbin/sysctl -p
/sbin/sysctl -a
- 资源使用参数
vi /etc/security/limits.conf
# *表示所有用户,可只设置root和kingbase用户
* soft nofile 65536
# 注意:设置nofile的hard limit不能大于/proc/sys/fs/nr_open,否则注销后将无法正常登陆
* hard nofile 65535
* soft nproc 65536
* hard nproc 65535
# unlimited表示无限制
* soft core unlimited
* hard core unlimited
- RemoveIPC参数
systemd-logind服务中引入的一个特性,是当一个用户退出系统后,会删除所有有关的IPC对象。该特性由/etc/systemd/logind.conf文件中的RemoveIPC参数控制。某些操作系统会默认打开,会造成程序信号丢失等问题(只有redhat7及以上和一些特殊的国产Linux的版本需要修改,改之前可先查看此项是否为默认yes)。设置RemoveIPC=no。 设置后重启服务
systemctl daemon-reload
systemctl restart systemd-logind.service
创建安装用户
3个节点均执行
[root@ks01 ]# useradd -m kingbase
[root@ks01 ]# id kingbase
uid=2005(kingbase) gid=2005(kingbase) groups=2005(kingbase)
[root@ks01 kingbasev9]# echo "es123456"|passwd --stdin kingbase
Changing password for user kingbase.
passwd: all authentication tokens updated successfully.
安装目录
[root@ks01 ]# mkdir -p /opt/Kingbase/ES/V9
[root@ks01 ]# cd /opt
[root@ks01 ]# chown -R kingbase.kingbase Kingbase
[root@ks01 opt]# ll Kingbase
total 0
drwxr-xr-x 3 kingbase kingbase 16 Jan 7 11:13 ES
介质下载
官方下载地址 https://www.kingbase.com.cn/xzzx/index.htm
选择对应版本进行下载。
Linux X86版本具体下载地址:
KingbaseES_V009R001C002B0014_Lin64_install.iso
安装包iso挂载
[root@ks01 opt]# cd /soft/kingbasev9
[root@ks01 kingbasev9]# ll
total 2669444
-rw-r--r-- 1 root root 2733508608 Jan 7 10:54 KingbaseES_V009R001C002B0014_Lin64_install.iso
[root@ks01 kingbasev9]# mount -o loop KingbaseES_V009R001C002B0014_Lin64_install.iso /mnt/cdrom/
mount: /dev/loop0 is write-protected, mounting read-only
部署软件
在kingbase用户下 ,执行setup.sh进行图形化安装,先安装kingbase软件,然后利用部署工具进行主备守护集群
[root@ks01 kingbasev9]# su - kingbase
Last login: Tue Jan 7 13:22:20 CST 2025 on pts/0
[kingbase@ks01 ~]$ cd /mnt/cdrom/
[kingbase@ks01 cdrom]$ ll
total 6
dr-xr-xr-x 2 root root 2048 Sep 23 19:33 setup
-r-xr-xr-x 1 root root 3932 Sep 23 19:33 setup.sh
[kingbase@ks01 cdrom]$ vncserver
New 'ks01:1 (kingbase)' desktop is ks01:1
Starting applications specified in /home/kingbase/.vnc/xstartup
Log file is /home/kingbase/.vnc/ks01:1.log












部署守护集群
新建项目
通过DeployTools部署工具,图形化部署,首先创建集群项目,配置基础参数。
[kingbase@ks01 cdrom]$ cd /opt/Kingbase/ES/V9/ClientTools/guitools/
[kingbase@ks01 guitools]$ ll
total 0
drwxrwxr-x 10 kingbase kingbase 229 Jan 7 14:01 DeployTools
drwxrwxr-x 4 kingbase kingbase 38 Jan 7 14:01 KDts
drwxrwxr-x 8 kingbase kingbase 228 Jan 7 14:01 KStudio
[kingbase@ks01 guitools]$ cd DeployTools/
[kingbase@ks01 DeployTools]$ ll
total 300
-rw-rw-r-- 1 kingbase kingbase 29007 Sep 23 18:35 artifacts.xml
drwxrwxr-x 4 kingbase kingbase 96 Jan 7 14:01 configuration
-rwxrwxr-x 1 kingbase kingbase 74675 Sep 23 18:35 deploy
-rw-rw-r-- 1 kingbase kingbase 291 Jan 7 14:01 deploy.ini
-rw-rw-r-- 1 kingbase kingbase 12638 Sep 23 18:35 epl-v10.html
drwxrwxr-x 8 kingbase kingbase 292 Jan 7 14:01 features
-rw-rw-r-- 1 kingbase kingbase 150731 Sep 23 18:35 icon.xpm
drwxrwxr-x 2 kingbase kingbase 24 Jan 7 14:01 logs
-rw-rw-r-- 1 kingbase kingbase 9013 Sep 23 18:35 notice.html
drwxrwxr-x 4 kingbase kingbase 78 Jan 7 14:01 p2
drwxrwxr-x 4 kingbase kingbase 80 Jan 7 14:01 packages
drwxrwxr-x 4 kingbase kingbase 8192 Jan 7 14:01 plugins
drwxrwxr-x 2 kingbase kingbase 33 Jan 7 14:01 readme
drwxrwxr-x 2 kingbase kingbase 112 Jan 7 14:01 zip
[kingbase@ks01 DeployTools]$ ./deploy




节点管理,新增主节点









节点管理,新增备节点






节点管理,新增Witness节点






集群状态查看
通过图形化工具,或者命令行都可以方便的查看到相应的集群状态。至此守护集群部署完成。

总结
金仓的部署工具可以很方便的完成数据库的主备集群搭建,对于新手来说是比较便利,文档支持也非常详细,同样也支持一键式脚本安装,满足了有自动化需求的用户,总体来看,在数据库基础实施方面,金仓可谓下了相当大的功夫。




