一、kingbase简介
KingbaseES是一款面向大规模并发交易处理的企业级关系型数据库。该产品支持严格的ACID特性、结合多核架构的极致性能、行业最高的安全标准,以及完备的高可用方案,并提供可覆盖迁移、开发及运维管理全使用周期的智能便捷工具。在早先的博文Linux之国产数据库人大金仓KingbaseES单机安装介绍了kingbase的单机安装步骤。实际生成环境中我们往往要求数据库的高可用,我们就需要进行集群部署,多台数据库服务器可以一起工作, 这样如果主要的服务器失效则允许一个第二服务器快速接手它的任务(高可用性), 或者可以允许多个计算机提供相同的数据(负载均衡)。理想情况下,数据库服务器能够无缝地一起工作。博文实验环境:
- 操作系统:centos7.6
- kingbase版本:V8.6
- 服务器配置:x86,2c,8G内存,60G硬盘
官网环境kingbase V8.6安装最低要求如下:
二、部署前的准备工作
部署前的软件包下载、虚拟机的安装、JDK安装、桌面本文不做赘述,我们可以参考单机安装的博文。这里的准备工作主要是指集群的规划和部署前必须至少的操作进行说明。提前做好规划方便以后的运维和管理。
1、节点规划
主机名 | IP | 用途说明 |
---|---|---|
s168 | 192.168.0.166 | node1,主节点,安装部署工具 |
s167 | 192.168.0.167 | node2,备节点 |
s166 | 192.168.0.168 | node3,监控和仲裁节点 |
sw | 192.168.0.1 | 交换机网关 |
vip | 192.168.0.69 | 虚拟IP地址,随着主节点角色自动漂移 |
2、安装配置信息规划
配置项规划 | 说明 |
---|---|
数据库安装用户 | kingbase |
数据库端口 | 54321 |
数据库超级用户 | system |
数据库超级用户密码 | 123456 |
PCP密码 | 123456 |
数据库部署工具 | 安装到node1上 |
数据库编码格式 | UTF8 |
大小写是否敏感 | 否 |
项目名称 | wuhs_kcluster_project |
集群名称 | kcluster |
3、存储目录规划
实际上data路径,日志路径,bin路径在集群项目名称、集群名称等确定之后就是固定的了,如果数据需要存储在其他磁盘上,我们可以使用软连接的方式。
规划说明 | 目录 |
---|---|
存放安装介质、license文件 | /install |
数据库软件安装家目录 | /home/kingbase |
数据库部署工具安装目录 | /home/kingbase/ES/V8 |
数据库监控目录 | /KESMonitor |
data路径 | /home/kingbase/cluster/wuhs_kcluster_project/kcluster/kingbase/data |
日志路径 | /home/kingbase/cluster/wuhs_kcluster_project/kcluster/kingbase/hamgr.log |
bin路径 | /home/kingbase/cluster/wuhs_kcluster_project/kcluster/kingbase/bin |
归档日志目录 | /archive |
数据库备份目录 | /backup |
4、创建相关目录
#主节点
[root@s168 ~]# mkdir /install
[root@s168 ~]# mkdir /backup
[root@s168 ~]# mkdir /archive
#备节点
[root@s167 ~]# mkdir /install
[root@s167 ~]# mkdir /backup
#仲裁节点
[root@s166 ~]# mkdir /install
[root@s166 ~]# mkdir /backup
[root@s166 ~]# mkdir /KESMonitor
5、关闭防火墙
#在s166、s167、s168三个节点执行,如果不想关闭防火墙则需要放行54321、8890、9187、9100端口
[root@s166 ~]# systemctl stop firewalld
[root@s166 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
6、关闭selinux
#在s166、s167、s168三个节点执行
[root@s166 ~]# setenforce 0
[root@s166 ~]# sed -i ‘s/=enforcing/=disabled/g’ /etc/selinux/config
7、禁用SSH进行DNS解析
#在s166、s167、s168三个节点执行
[root@s166 ~]# sed -i ‘s/#UseDNS yes/UseDNS no/g’ /etc/ssh/sshd_config
[root@s166 ~]# sed -i ‘s/GSSAPIAuthentication yes/GSSAPIAuthentication no/g’ /etc/ssh/sshd_config
[root@s166 ~]# systemctl restart sshd
8、创建kingbase用户
#在s166、s167、s168三个节点执行
#我这在安装操作系统的时候已经已经添加了普通用户kingbase
#如果没有创建kingbase用户,可以用useradd kingbase添加,使用passwd kingbase设置账户密码。
9、修改系统参数
#在s166、s167、s168三个节点执行
[root@s166 ~]# sed -i “60a kingbase soft nofile 65536” /etc/security/limits.conf
[root@s166 ~]# sed -i “61a kingbase hard nofile 65536” /etc/security/limits.conf
[root@s166 ~]# sed -i “62a kingbase soft nproc 65536” /etc/security/limits.conf
[root@s166 ~]# sed -i “63a kingbase hard nproc 65536” /etc/security/limits.conf
[root@s166 ~]# sed -i “63a kingbase soft core unlimited” /etc/security/limits.conf
[root@s166 ~]# sed -i “63a kingbase hard core unlimited” /etc/security/limits.conf
#在s166、s167、s168三个节点执行
#编辑/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
10、设置为图形界面启动
#在s168节点执行,在部署工具安装节点执行
[root@s168 ~]# systemctl set-default graphical.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.
三、kingbase集群安装步骤
1、将镜像iso文件和license上传到/install
[root@s168 ~]# ll /install/
total 2587992
-rw-r–r–. 1 root root 2650097664 Oct 8 14:46 KingbaseES_V008R006C006B0021_Lin64_install.iso
-rw-r–r–. 1 root root 3534 Apr 26 2022 license_18720_0.dat
2、挂载iso文件
[root@s168 ~]# mkdir -p /mnt/cdrom
[root@s168 ~]# mount -o loop /install/KingbaseES_V008R006C006B0021_Lin64_install.iso /mnt/cdrom/
3、启动安装脚本
使用sh setup.sh -i swing命令启动安装脚本,这里安装的是kingbase的完整版,包含部署工具、客户端等。其实这里的安装步骤跟单机安装没有什么区别。kingbase单机安装见博文Linux之国产数据库人大金仓KingbaseES单机安装。
4、启动数据库部署工具
登录系统桌面,点击启动数据库部署工具。
5、创建集群
点击集群项目名称,右键选择创建项目,输入项目名称;然后右键选择创建集群,输入集群名称。
6、集群通用配置
完成集群名称后,点击下一步进入集群通用配置项,基本设置中我们设置集群的复制模式、超级用户账户名、密码、网关地址等。高级设置中我们可以设置VIP地址,有了VIP地址集群进行主备切换的时候应用端就不需要切换jdbc连接串的IP地址信息。
配置页内容比较多,需要通过滚动条上下拉动或者左右拉动才可以完成全部配置。
高级配置主要需要设置VIP地址,切换模式、检测参数等使用默认配置即可。
7、新增节点
选择节点管理,右键新增节点。选择使用ssh启用securecmd,如果是已删除节点重新部署则可以点击使用已部署的securecmd。这里主要需要填写节点的IP地址、端口号、root密码和license文件。
8、节点配置
继续完成节点配置,主要配置显示名称,我这里显示名称开始写成网卡名称了,后面是通过删除节点重新部署才修改的名称。所以参数定义的时候谨慎操作。主节点是不可以被删除的,如果需要删除则需要先完成主备切换。新增节点的时候默认第一个节点为主节点,第二个节点为备节点。
9、节点系统参数检查
点击检查可以验证系统参数配置是否满足要求,如果不满足要求可以根据报错提示修改或者点击一键修改系统参数完成参数配置。
10、预览节点配置信息
这一步主要是预览整个节点的配置信息,确认无误后点击确定,如果有需要修改的点击上一步返回修改。
11、节点部署
点击部署开始进行节点部署,部署完成后会提示节点部署成功。
12、新增备节点
主节点部署完成之后,重复第7-11步,即可完成备节点添加。
13、新增witness节点
点击节点管理右键新增witness节点,参考第7-11步完成仲裁节点的添加。
14、witness添加成功
15、查看集群状态
双机集群名称,可以查看集群状态,进程号等信息。当前node168节点为主节点,node167节点为备节点,node166节点为仲裁节点。
16、查看节点状态
双机节点名称可以查看节点状态,包括节点的操作系统内核、内存使用情况、数据库安装磁盘的磁盘利用率等。
四、集群日常管理
1、集群启停
选中集群,右键选择启动/停止,可以进行启动集群或者停止集群的操作。选择了启动或者停车集群还会弹窗提示,点击确定后就开始启动或者停止集群了。启停或者停止集群完成后有弹窗提示。
2、主备切换
选中集群,右键选择主备切换,弹窗中选择需要切换为主的节点,然后点击切换,切换成功后会有弹窗提示。
3、修改集群密码
选中集群,右键选择修改集群密码,弹窗如下内容,我们可以修改system超级用户的密码。