KingbaseES 提供数据库部署工具进行数据库集群的部署。KingbaseES 提供基于图形化和命令行操作的集群部署方式,本文档主要用于图形化 KingbaseES 集群部署场景。
集群简介
KingbaseES软件能够提供一主一备以及一主多备的高可用集群架构,实现数据及实例级 (异地) 故障容灾,也能够提供多节点并行服务,内存融合及存储共享,实现高并发性能利用最大化,结合读写分离或备份使用同步实现数据保护最大化。
服务器环境配置
服务器规划
节点名称 | IP | 操作系统 | 平台 | cpu | 内存 | 硬盘 | 备注 |
node1 | X86_64 | 192.168.40.152 | Centos 7.9 x86_64 | 64 | 4G | 40G | 主节点 |
node2 | X86_64 | 192.168.40.153 | Centos 7.9 x86_64 | 64 | 2G | 40G | 备节点 |
最小配置要求 :
项 | 最低标准 |
CPU | 主流的32位或64位CPU |
内存 | 1GB以上 |
硬盘 | 1GB以上空闲空间 |
网络拓普图
以下网络拓普图是一主两备的场景,一主一备可参考

配置yum
上传CentOS-7-x86_64-DVD-2009.iso至服务器/opt目录并挂载
#配置本地yum源
cd /etc/yum.repos.d
mkdir bk
mv *.repo bk/
cat > /etc/yum.repos.d/centos79.repo << "EOF"
[local]
name=centos79
baseurl=file:///mnt
gpgcheck=0
enabled=1
EOF
mount /opt/CentOS-7-x86_64-DVD-2009.iso /mnt系统参数配置
--安装支持图形化的依赖包
yum groupinstall "GNOME Desktop"
yum groupinstall “X Window System"
--安装系统依赖包
yum install -y lsof
yum install -y net-tools
yum install -y unzip操作系统时间
检查服务器时间
--检查服务器时间
date
--若操作系统时间不准确,进行修改
date -s "时间"防火墙
--centos6及之前版本或者使用iptables的系统
查看状态:
service iptables status
关闭防火墙:
service iptables stop
关闭防火墙开机自启动:
chkconfig iptables off
--centos7或者是使用firewalld的系统
#查看状态:
systemctl status firewalld
#关闭防火墙:
systemctl stop firewalld
#关闭防火墙开机自启动:
systemctl disable firewalldSELinux安全设置
cp /etc/selinux/config /etc/selinux/config_bak_`date +%F`
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
setenforce 0 安装依赖包
--图形化的依赖包
yum install -y xorg-x11-xauth #安装x11组件包
yum -y install wqy-zenhei-fonts* #安装中文字库ip命令路径
使用which ip 命令确认ip命令存在且可正常使用 得到ip命令的路径path,使用chmod u+s $path/ip,确保普通用户有权限执行
--ip命令的路径
[root@localhost ~]# which ip
/usr/sbin/ip
--赋予权限
chmod u+s $path/ip
参数说明
针对某个程序任何用户都有读写这个程序的权限,可以像root用户一样操作。注意事项:只有集群中设置了VIP才需要设置、检查此项。
arping命令路径
如果配置了VIP,集群默认使用自带的arping,无需检查。
ulimit资源限制
cp /etc/security/limits.conf /etc/security/limits.conf_bak_`date +%F`
cat >> /etc/security/limits.conf << "EOF"
* soft nofile 65536
* hard nofile 65535
* soft nproc 65536
* hard nproc 65535
* soft core unlimited
* hard core unlimited
EOF
参数说明:
#使用unlimited ,是最大数量则表示无限制
#*表示所有用户,这里也可只设置root和要安装的kingbase用户设置其值
#nofile是打开文件最大数目,nproc为进程最大数目,core为生成内核文件大小的上限
# soft代表一个警告值,hard为真正的阈值,超过就会报错,可以适当继续往高调
# PAM的调整针对单个会话生效,调整后需重新登录root和kingbase,用ulimit -n查看生效情况注意事项:设置nofile的hard limit不能大于/proc/sys/fs/nr_open,否则注销后将无法正常登陆。
操作系统内核参数
sysctl.conf文件配置
cp /etc/sysctl.conf /etc/sysctl.conf_bak_`date +%F`
sed -ri '/net.ipv4.ip_forward/s#0#1#' /etc/sysctl.conf
cat >> /etc/sysctl.conf <<EOF
#add by kingbase
#重新加载生效修改操作系统信号量
kernel.sem = 5010 641280 5010 256
#关闭sysrq功能
kernel.sysrq = 0
#关闭路由转发
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
#处理无源路由的包
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
# 确保无人能修改路由表
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
#关闭ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
#内核放弃建立连接之前发送SYN 包的数量
net.ipv4.tcp_syn_retries = 2
#内核放弃建立连接之前发送SYNACK 包的数量
net.ipv4.tcp_synack_retries = 2
#当keepalive 起用的时候,TCP 发送keepalive 消息的频度。缺省是2 小时
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl =15
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_max_tw_buckets = 6000
#启用timewait 快速回收
net.ipv4.tcp_tw_recycle = 1
#开启重用。允许将TIME-WAIT sockets 重新用于新的TCP 连接
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_fin_timeout = 10
# 开启SYN洪水攻击保护
net.ipv4.tcp_syncookies = 1
#限制仅仅是为了防止简单的DoS 攻击
net.ipv4.tcp_max_orphans = 3276800
#未收到客户端确认信息的连接请求的最大值
net.ipv4.tcp_max_syn_backlog = 16384
#限制仅仅是为了防止简单的DoS 攻击
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
#网络传输队列配置
net.ipv4.tcp_wmem = 8192 87380 16777216
#修改网络传输队列类型
net.core.default_qdisc=fq_codel
fs.file-max = 2000000
#允许系统打开的端口范围
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.route.gc_timeout = 100
#系统中每一个端口最大的监听队列的长度,这是个全局的参数,默认值为128
net.core.somaxconn=1024
#每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
net.core.netdev_max_backlog = 262144
EOF
--修改后生效
sysctl -p如果出现ssh/sys_securecmd心跳超时建议修改网络传输队列类型;特别是队列类型是pfifo_fast 很有可能出现心跳超时问题,例如:
tc qdisc replace dev 网卡名称 root fq_codel # 当前生效(重启设备会失效)
echo "net.core.default_qdisc=fq_codel" >> /etc/sysctl.conf # 永久生效(需重启设备)systemd服务设置
vim /etc/systemd/logind.conf
#修改IPC ,某些操作系统会默认打开,会造成程序信号丢失等问题(只有redhat7及以上和一些特殊的国产linux的版本需要修改,改之前可先查看此配置项中的此项是否为默认yes)
RemoveIPC=nosystem.conf文件配置
vim /etc/systemd/system.conf
#修复服务最大进程数限制,某些操作系统会有此限制
DefaultTasksAccounting=no 或DefaultTasksMax=65536
#执行以下命令生效,重启服务
systemctl daemon-reload
systemctl restart systemd-logind.servicesystemd 228版本存在limit限制过低问题,会导致服务启动的程序超过限制后资源不可用的情况
--用service cron status 任一服务,查看其状态 Centos7.9无
root @ greatwall-os :~# service cron status
● cron.service - Regular background program processing
daemon
Loaded: loaded (/lib/systemd/system/cron.service;
enabled;xxx...)
Active: active (running) since 五 2019-08-16 11:28:58
CST; 1 weeks ago
Docs: man:cron(8)
Main PID: 3120 (cron)
Tasks: 204 (limit: 512)可以观察到出现 limit : 512 默认限制。
在出现此情况时,修改 DefaultTasksAccounting=no会默认关闭
所有服务limit限制,修改后用 systemctl daemon-reload ;
systemctl daemon-reexec 生效。之后用同样方式查看
服务cron limit,若还未去除,需重启系统生效。
sshd_config文件配置
允许root登录,修改PermitRootLogin 的参数为yes
启用图形化,修改XLLForwarding yes
--允许root登录
vim /etc/ssh/sshd_config
#PermitRootLogin yes 更改为 PermitRootLogin yes
#XLLForwarding no 更改为 XLLForwarding yes
--重启服务生效
systemctl restart sshd 测试root ssh 自己ip和其他设备ip的耗时,若超过5s以上均为异常,需解决,否则会影响部署及HA的流程。
建议的参数调整:
GSSAPIAuthentication 改为no
UseDNS 改为no(谨慎)
IO调度策略即rc.local文件配置
--查看当前I/O调度策略
cat /sys/block/{DEVICE-NAME}/queue/scheduler
--临时修改:echo deadline > /sys/block/{DEVICE-NAME}/queue/scheduler
--永久修改:vim /etc /rc.d/rc.local
echo deadline >/sys/block/{DEVICE-NAME}/queue/scheduler修改I/O调度策略为deadline(最后期限算法,根据算法保证请求不饿死){DEVICE-NAME} = 硬盘名称
#机械硬盘,推荐deadline调度算法,较为适合业务单一并且IO比较重的业务,比如数据库。
#固态硬盘,推荐noop调度算法。
--查看系统支持IO调度算法
-bash-4.2# dmesg\| grep -i scheduler
[ 1.203287] io scheduler noop registered
[1.203289] io scheduler deadline registered (default)
[ 1.203311] io scheduler cfq registered
[ 1.203314] io scheduler mq-deadline registered
[ 1.203316] io scheduler kyber registered
--查看某块盘的IO调度算法:
-bash-4.2# cat /sys/block/sda/queue/scheduler cfq创建用户
cat /etc/passwd | grep kingbase(是否存在,存在则执行下条命令删除)
userdel -rf kingbase
groupadd -g 1010 kingbase
useradd -d /home/kingbase -g kingbase -u 1010 kingbase
echo kingbase | passwd --stdin kingbase # 更改kingbase 即操作系统kingbase账户密码
chage -M 99999 kingbase
id kingbase
uid=1001(kingbase) gid=1001(kingbase) groups=1001(kingbase)规划目录
集群的安装目录和数据目录暂时不能修改,默认路径/home/kingbase/cluster/项目名/集群名下。
数据库软件的安装目录可以自定义。
--创建安装目录
mkdir -p /KDBV9R1
chown -R kingbase:kingbase /KDBV9R1
--归档目录
mkdir -p /KDBARCH
chown -R kingbase:kingbase /KDBARCH注意:
安装目录和数据目录暂时不能修改,默认路径/home/kingbase/cluster/项目名/集群名下。安装过程中会提示指定安装目录和数据目录,如果目录不存在安装程序会自动创建。
需每个节点都创建归档目录,不然部署集群过程中会报错。
介质准备
访问金仓数据库官网下载金仓最新版本的数据库
目前金仓官方提供了所有可支持的平台的数据库版本和license,KingbaseES数据库最新版本为V8R9,先前分为单机版和集群版2种安装介质,现已合成1个安装介质,不再区分单机版和集群版。
安装介质下载并上传
数据库软件官方下载地址:https://www.kingbase.com.cn/xzzx/index.htm

授权文件下载并上传
授权文件官方下载地址:https://www.kingbase.com.cn/xzzx/index.htm

集群部署
挂载安装包
一个节点操作即可
--挂载安装包
[root@localhost opt]# mount /opt/KingbaseES_V009R001C002B0014_Lin64_install.iso /mnt
mount: /dev/loop0 is write-protected, mounting read-only安装数据库软件
1、进入install目录,执行sh setup.sh,开始使用图形化方式安装数据库(不能用root用户)
运行桌面上的Xmanager - Passive
su - kingbase
echo $LANG
export LANG=en_US.UTF-8
export DISPLAY=192.168.19.19:0.0
cd /mnt
sh setup.sh 
2、输入Y同意协议,继续下一步

3、选择安装类型
选择客户端

4、点击选择,选择安装路径,也可以直接下一步,则使用默认安装路径,本文采用自定义安装目录

5、接下来是安装前的确认,直接进行安装即可

6、接下来就是自动安装的过程了,稍等



启动部署工具
部署工具介绍
数据库部署工具由纯java编写,用户仅需知道所需部署服务器的ip、port等信息,再根据工具的引导,输入集群脚本的关键参数,完成集群的引导步骤即可部署一套完整的集群服务,同时还提供集群状态监控服务。部署完成后,集群状态可被实时监控,在出现错误后提供日志供予错误分析,还可在查看监控的同时,修改集群参数,进行配置下发,以达到最好的状态。
功能概括:
- 集群项目名称:首先,创建一个项目。R9用项目来概括一个集群的总单位。项目管理是对集群进行一个分组的管理,将隶属于一个项目的集群放在一起统一进行管理。例如:XX所的集群A、集群B,两个集群并列显示。
- 集群:包含创建集群、集群删除、集群启停、暂停/恢复自动功能、主备切换、集群状态查看、修改集群密码、修改配置参数为一体的功能模块。集群创建时,根据用户输入,创建集群的“节点通用配置”,创建完成后,集群名称下生成三个子节点:“节点通用配置”、“节点管理”、“监控管理”。
- 节点通用配置:在创建集群时,填写参数配置集群的所有节点的操作系统、数据库、repmgr通用配置,目的是为了减少在创建节点的过程中,重复的填写相同的内容。
- 节点管理:对当前部署集群的节点进行管理,包含新增节点,删除节点,节点信息查看等功能。节点部署过程中,可对节点进行环境检测,并提供“一键修改系统参数”、“关闭防火墙”等功能。
- 监控管理:是对整个集群的运行状态进行监控,包括:服务器状态和数据库状态。
警告
部署工具部署集群后,不支持手工在服务器修改集群相关配置参数,若进行修改,会导致工具无法获取其修改信息而导致集群异常。
启动数据库部署工具
命令行进入到安装目录下$InstallDir/ClientTools/guitools/DeployTools,执行./deploy,启动数据库部署工具。
su - kingbase
echo $LANG
export LANG=en_US.UTF-8
export LANG=zh_CN.UTF-8
export DISPLAY=192.168.19.19:0.0
cd /KDBV9R1/ClientTools/guitools/DeployTools
./deploy
创建项目
1、在开启的“数据库部署工具”中,关闭欢迎窗口。然后点击左上角的“窗口”菜单

2、鼠标右键单击“集群项目名称”,工具弹出右键菜单,选择“创建项目”,如下图:



界面属性介绍如下:
projectName:新建项目的名称,只能是英文、数字、下划线或者三者组合,不能为空
根据实际的情况填入信息,然后点击界面右下角的按钮。按钮功能如下:
OK:验证当前所输入的信息是否正确有效之后,创建项目,并将该信息记录到隐藏文件下的配置文件中。
Cancel:放弃本次操作,并关闭当前创建项目的窗口

创建集群
右键单击刚刚创建的项目节点,弹出菜单,选择“创建集群”。右键菜单如下图:

创建集群窗口,分为节点通用配置和db&repmgr配置两项。
节点通用配置
项目创建成功后,在创建集群时,进行节点通用配置。
注意事项:创建集群成功后,节点通用配置参数将不能再修改。
界面如下:

节点通用配置界面属性说明
配置项 | 描述 |
集群名称 | 新建的集群名称,只能是英文、数字、下划线或者三者组合,不能为空。 |
节点通用配置 | 当前配置适用于整个集群的所有节点,可以免除创建节点时重复 填写相同的值。 |
节点类型 | 选择当前创建的集群是通用机或者专用机,默认为通用机。 |
securecmd端口 | 工具连接节点或者直接向节点发起指令时, 创建连接所使用到的securecmd服务端口号,默认为8890,可根据环境修改 |
常规用户 | 部署集群所使用的账户,集群将会创建在该账户之下。 如果用户不存在,工具负责创建(创建用户命令为:useradd -g -m ), 并设置默认密码(123456)。 |
默认路径 | 集群安装的路径,路径由工具根据项目名称,集群名称拼接而成 且不可修改。 |
db&repmgr配置
填写完成后点击“下一步”进入到db&repmgr配置,如下图:

基本设置界面属性介绍

配置项 | 描述 |
选择数据库zip包 | 点击选择按钮,选择db.zip。 补充: db.zip文件位置 /KDBV9R1/KESRealPro/V009R001C002B0014/ClientTools/guitools/DeployTools/zip/securecmdd.zip |
大小写不敏感 | 默认不勾选,即大小写敏感。 补充: Oracle模式下,大小写敏感可选;MySQL/Postgresql,大小写敏感不可选 |
max_connections | 数据库最大 连接数,默认100个,不能为空。参数最小值不能小于100, 最大值无限制。 |
listenerPort | 数据库监听端口号,默认54321,不能为空。 |
dbUser | 数据库用户名,默认system,不能为空。 |
dbPassword | 数据库密码,默认12345678ab,不能为空。 |
replication mode | 同步/异步模式:1.quorum 2.sync 3.async 4.all。 |
archive_path | 数据库归档路径。若不采用默认路径,支持事先规划 默认开启归档 |
dbmode | 数据库兼容模式, Oracle、PostgreSQL、MySQL两种模式,默认兼容Oracle。 |
加密算法 | 数据库认证采取的加密 方式,scram-sha-256、md5,默认是scram-sha-256。 |
ip类型 | 支持IPV4和IPV6两种地址类型。 |
trust_server | 集群的信任网关,网关可以填写多 个用英文逗号分隔,多个信任网关中有一个可用即可。 |
使用hostname | 开启后工具支持多网段域名部署 |
使用多网冗余部署 | 开启后connection_timeout参数改为10,关闭为5。 此功能需开启“使用hostname”才可使用。 |
ping_path | 系统环境中ping指令所在路径。 |
hamgr_dbname | 默认是esrep, 且不可修改。repmgr所依赖的表就存放在此数据库中。 |
hamgr_dbuser | 默认是esrep, 且不可修改。登录esrep数据库的用户为esrep。 |
data_directory | 集群数据库data存放路径。目前暂不支持自定义规划路径 |
sys_bindir | 集群数据库bin存放路径。 |
repmgrd_pid_file | 记录repmgrd pid文件路径, 默认值:${cluster_path}/kingbase/etc/repmgrd.pid, 参数值不允许修改。 写入repmgr.conf文件,参数名为:repmgrd_pid_file |
kbha_pid_file | 记录kbha pid文件路径, 默认值:${cluster_path}/kingbase/etc/kbha.pid, 参数值不允许修改。 写入repmgr.conf文件,参数名为:kbha_pid_file |
repmgrd_log_file | 记录repmgrd日志文件路径, 默认值:${cluster_path}/kingbase/log/hamgr.log, 参数值不允许修改。 写入repmgr.conf文件,参数名为:log_file |
kbha_log_file | 记录kbha日志文件路径, 默认值:${cluster_path}/kingbase/log/kbha.log, 参数值不允许修改。 写入repmgr.conf文件,参数名为:kbha_log_file。 |
running_under_fa ilure_trusted_se rvers | 网关故障后数据库是否继续运行,可选值为 on 或 off, 默认为on。on:网关故障后,数据库不受影响,正常运行; off:网关故障后,集群会关闭数据库保证数据不发生分歧。 补充: 信任网关是一个急群中所有节点都能ping通的ip,不需要任何安装部署,只需要这个ip能够保持稳定,不宕机就可以了,是作为集群节点是否存活的一种探测手段 |
data_checksums | 用于控制是否开启数据校验和功能,默认是开启状态。 on: 开启数据校验和功能; off:关闭数据校验和功能; 写 入repmgr_config.conf文件,参数名为:data_checksums。 补充: 数据校验功能是为了校验数据块是否有损坏,对于重要系统,建议开启这个功能,开启后对性能有一定影响。 |
流复制通信超时 时间 | 流复制之间的数据传输超时时间, 超过这个时间没有数据传输则表示流复制断开了, 会进行重连。默认30000毫秒 |
注意事项
1.max_connections的值只能修改为更大的值,不能修改为更小的值。
2.执行which ping命令,查看操作系统中真实的ping_path路径,修改ping_path路径为查看的实际路径。 3.集群部署完成后,请不要修改repmgrd_pid_file、kbha_pid_file参数的值,修改后可能会造成同时启动多个kbha或repmgrd进程。
4.Oracle模式下,大小写敏感可选;MySQL/Postgresql,大小写敏感不可选。
5.默认开启归档
高级设置界面属性介绍


配置项 | 描述 |
wal_keep_segments | 最小预留xlog文件个数,默认为512个,不能为空。 |
max_wal_senders | 支持最大集群备机个数,默认为32,此配置项不能 大于max_connections,最少是n+4个,n为集群节点个数, 不能为空。 |
hot_standby_feedback | 备机读事物时避免主机vacuum造成的数据无法查询的 取消冲突,默认为on,开启状态。 |
control_file_copy | 控制文件多副本,最多可配置8个文件,写入到es_rep.conf里 |
审计表空间加密 | 若勾选,则初始化数据库时增加'-t'作为参数执行。 若输入框中输入内容, 则初始化数据库时增加'-t -K ${输入的内容}'作为参数执行。 |
log_checkpoints | 数据库日志中记录检查点和重启点。包括一些统计信息, 写入缓冲区的数据和写入所花的时间。 on、off。默认为on。 |
log_replication_commands | 数据库日志中记录每一个复制命令。 on、off。默认为on。 |
wal_compression | 打开此参数可以减小WAL所占的空间且无需承受不可恢复的 数据损坏风险。但代价是需要额外的CPU开销,以便在WAL 记录期间进行压缩以及在WAL重放时解压。 on、off。默认为on。 |
db_other_options | 在Oracle兼容模式下, initdb初始化数据库流程需添加兼 容V7参数 –scenario-tuning, 调用scenario_tuning.sql SQL脚本,生成V7兼容视图、字段, 以支持V7部分系统视图。 |
encoding | 模板数据库的编码格式,默认数据库的编码格式, 未选择encoding的情况下不可选择Collate和CType , 默认为default,将设置为服务器环境配置的字符集 |
Collate | 这个值决定了字符串类型排序的规则, 值为“C”时表示没有规则,即以二进制值大小为比较规则。 在初始化设置后不能被修改。 |
CType | 这个值决定了字符的分类,例如大小写和数字, 值为“C”时表示没有规则,即以二进制值大小为比较规则。 在初始化设置后不能被修改。 |
virtual_ip | DB节点的虚拟ip(用于切换时ip的移动,一直跟随着主DB)。 目前支持多cluster,VIP就可以为空。如果要填写则必须 为有效的IP格式,且必须为无法ping通的IP地址。 |
virtual_ip_mask | 虚拟ip的掩码长度,默认为24。 掩码长度需要配置为加载虚拟ip的网卡的实际掩码长度。 |
ip_path | 系统环境中ip指令所在路径。 |
auto_cluster_recovery_level | 全故障自动恢复配置。0:关闭;1:打开,默认为1。 |
use_chek_disk | |
conn_options | connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3 tcp_user_timeout=9000 |
scmd_options | -q -o ConnectTimeout=10 -o StrictHostKeyChecking=no -p 8890 -o ServerAliveInterval=2 -o ServerAliveCountMax=3 |
waldir | 指定链接的wal日志目录,将data目录中sys_wal目录 作为软连接的形式存在。 |
scmd_options | 集群节点ssh通信的配置项,连接超时10秒。 |
conn_options | 集群节点连接的配置项。 |
failover | 节点故障自动切换,automatic、manual,默认值 为automatic。 |
服务可用优先 /数据保护优先 | 单选项。根据选项不同,reconnect_attempts, reconnect_interval,recovery,synchronous_commit 四个参数的默认值不同。 默认选项为数据保护优先 |
reconnect_attempts | 集群中连接的重试次数。 服务可用优先默认值为3,数据保护优先默认值为10。 |
reconnect_interval | 集群中连接的重试间隔。 服务可用优先默认值为5,数据保护优先默认值为6。 |
recovery | 节点故障自动恢复,automatic、standby、manual。 manual,关闭自动恢复,故障节点无论是主机还是备机, 都不进行自动恢复;standby,故障节点是备机才自动恢复; automatic,所有故障节点都自动恢复。 服务可用优先默认值为automatic, 数据保护优先默认值为standby。 |
synchronous_commit | 指定在命令返回"success"指示给客户端之前, 一个事务是否需要等待WAL记录被写入磁盘。 on、off、local、remote_write、remote_apply。 服务可用优先默认值为on,数据保护优先默认值为remote_apply |
注意事项
在使用NetworkManager管理网络服务的情况下,如果手动删除了virtual_ip所在网卡上所有的物理IP,有可能导致virtual_ip丢失,且在物理IP被重新添加上之前,virtual_ip不会自动添加。
执行which ip命令,查看操作系统中真实的ip_path路径,修改ip_path,路径为查看的实际路径。

节点管理
新增主节点
展开当前创建的集群,右键选择菜单的“新增节点”,如下图所示:

ssh配置
工具开启“增加节点”流程窗口,如下图所示:

ssh配置项说明
配置项 | 描述 |
使用ssh启动securecmd | 单选项,默认选中。 此项选中时,ssh端口、root密码、选择securecmd文件、 securecmd路径四项需配置。 可使用ssh方式上传并启用securecmd。 补充: securecmd文件位置 /KDBV9R1/KESRealPro/V008R006C008B0014/ClientTools/guitools/DeployTools/zip/securecmdd.zip |
主机名或IP地址 | 当前节点(服务器)的IP地址或主机名。 当“开启hostname”选项未勾选时,此处名称为IP地址。 |
ssh端口 | 节点所在的物理机器的ssh端口,默认22。不可为空。 |
root密码 | 节点所在的物理机器的root密码,不能为空。 |
选择securecmd文件 | securecmd安装包,不可为空。 |
securecmd路径 | 节点服务器上securecmd部署路径,不可为空。 必须位于/home/${常规用户}目录下。 |
使用已部署的securecmd | 单选项,默认不选中 此项。选中时,securecmd需要用户手动在节点服务中配置, 用户可点击“下一步”进入节点配置页面。 |
ssh配置项示例

节点配置

节点配置配置项说明
配置项 | 描述 |
显示名称 | 用户自定义的节点名称(服务器的别名), 最终将会显示在左侧的树形菜单中。 |
主机名或IP地址 | 当前节点(服务器)的IP地址或主机名。 当“开启hostname”选项未勾选时,此处名称为IP地址。 |
securecmd端口,常规用户 ,默认路径 | 此三项均来自通用配置中,无需再次填写,且无法修改。 详细介绍参见通用配置参数介绍。 |
系统节点名称 | 系统节点名称记录在数据库配置文件中的节点(服务器)别名, 目前采用node + ip最后一段的拼接的方式命名。无法更改 |
网卡名称 | 此项主要是针对填写VIP选项的集群。使用VIP必须填写该VIP 要绑定的对应网卡名称。 支持获取多个网卡。点击“获取网卡”,列出所有状态UP的网卡 列表,并将与当前节点服器IP相同的网卡名称显示列表第一位。 可以从获取的网卡列表中选择一个,也可以手动进行填写。若没填写VIP选项的集群,选项为灰色不可填写 |
网卡物理IP地址 | 此项主要是针对填写VIP选项的集群。 填写网卡名称后,需要输入对应的网卡IP地址。 点击“获取”,工具显示对应的物理IP地址。 若存在多个地址,默认只显示第一个。 也可手动进行填写。 |
选择license文件 | 此项主要是针对非保密机集群。 需要选择集群节点所需要的license的上传路径。 |
节点配置示例

节点环境检测
检测合格后进入到系统环境检测步骤界面,此时需点击下方的检测按钮。如下图所示:

点击“检查”按钮, 环境参数的信息检测都会输出到这个界面中。输出信息中可能会出现红色和黄色提示,被标为红色ERROR的提示,意为不允许安装集群,用户需解决后,才可继续进行下一步。黄色警告意为不解决可能会导致集群出现问题隐患。例如:
(1)防火墙,有些用户和系统必须开,那么就需要用户将集群使用到的端口号添加到防火墙白名单中。
(2)检查发现[ulimit.open proc] is null,则需要检查一下集群用户的shell环境。 如下图所示:

点击“一键修改系统参数”按钮, 修改的系统参数项,都会输出到这个界面中。 如下图所示:

点击“关闭防火墙”按钮, 关闭防火墙的日志打印,都会输出到这个界面中。 如下图所示:

预览信息
点击上图中“下一步”按钮,系统进入预览信息界面,当前界面将会把配置信息进行汇总并显示,如下图所示:

集群部署
点击上图中“确定”按钮,系统进入集群部署界面,如下图:

图中按钮功能如下:
- 重新部署:当集群安装过程中出现中断(例如:数据库启动超时),部署集群的流程也随之中断,这个时候根据报错排查问题后,“重新部署”按钮就可以重新部署集群。
- 部署:执行部署集群操作。
- 取消:放弃本次部署操作,并且在后台中将生成的集群相关的文件删除。
这里点击“部署”按钮,系统开始执行集群部署操作。执行过程截图如下:

部署时的界面打印。此界面将执行命令,返回结果等均进行输出,便于错误时候的查询报错信息。也便于学习和理解KingbaseES的部署流程步骤。

到此,集群部署顺利完成。
以此类推,进行第二个节点的部署。
新增备节点
展开当前创建的集群,右键选择菜单的“新增节点”,如下图所示:

ssh配置
工具开启“增加节点”流程窗口,如下图所示:

ssh配置项说明
配置项 | 描述 |
使用ssh启动securecmd | 单选项,默认选中。 此项选中时,ssh端口、root密码、选择securecmd文件、 securecmd路径四项需配置。 可使用ssh方式上传并启用securecmd。 补充: securecmd文件位置 /KDBV9R1/KESRealPro/V008R006C008B0014/ClientTools/guitools/DeployTools/zip/securecmdd.zip |
主机名或IP地址 | 当前节点(服务器)的IP地址或主机名。 当“开启hostname”选项未勾选时,此处名称为IP地址。 |
ssh端口 | 节点所在的物理机器的ssh端口,默认22。不可为空。 |
root密码 | 节点所在的物理机器的root密码,不能为空。 |
选择securecmd文件 | securecmd安装包,不可为空。 |
securecmd路径 | 节点服务器上securecmd部署路径,不可为空。 必须位于/home/${常规用户}目录下。 |
使用已部署的securecmd | 单选项,默认不选中 此项。选中时,securecmd需要用户手动在节点服务中配置, 用户可点击“下一步”进入节点配置页面。 |
ssh配置项示例

节点配置

节点配置配置项说明
配置项 | 描述 |
显示名称 | 用户自定义的节点名称(服务器的别名), 最终将会显示在左侧的树形菜单中。 |
主机名或IP地址 | 当前节点(服务器)的IP地址或主机名。 当“开启hostname”选项未勾选时,此处名称为IP地址。 |
securecmd端口,常规用户 ,默认路径 | 此三项均来自通用配置中,无需再次填写,且无法修改。 详细介绍参见通用配置参数介绍。 |
系统节点名称 | 系统节点名称记录在数据库配置文件中的节点(服务器)别名, 目前采用node + ip最后一段的拼接的方式命名。无法更改 |
网卡名称 | 此项主要是针对填写VIP选项的集群。使用VIP必须填写该VIP 要绑定的对应网卡名称。 支持获取多个网卡。点击“获取网卡”,列出所有状态UP的网卡 列表,并将与当前节点服器IP相同的网卡名称显示列表第一位。 可以从获取的网卡列表中选择一个,也可以手动进行填写。若没填写VIP选项的集群,选项为灰色不可填写 |
网卡物理IP地址 | 此项主要是针对填写VIP选项的集群。 填写网卡名称后,需要输入对应的网卡IP地址。 点击“获取”,工具显示对应的物理IP地址。 若存在多个地址,默认只显示第一个。 也可手动进行填写。 |
选择license文件 | 此项主要是针对非保密机集群。 需要选择集群节点所需要的license的上传路径。 |
节点配置示例

节点环境检测
检测合格后进入到系统环境检测步骤界面,此时需点击下方的检测按钮。如下图所示:

点击“检查”按钮, 环境参数的信息检测都会输出到这个界面中。输出信息中可能会出现红色和黄色提示,被标为红色ERROR的提示,意为不允许安装集群,用户需解决后,才可继续进行下一步。黄色警告意为不解决可能会导致集群出现问题隐患。例如:
(1)防火墙,有些用户和系统必须开,那么就需要用户将集群使用到的端口号添加到防火墙白名单中。
(2)检查发现[ulimit.open proc] is null,则需要检查一下集群用户的shell环境。 如下图所示:

点击“一键修改系统参数”按钮, 修改的系统参数项,都会输出到这个界面中。 如下图所示:

点击“关闭防火墙”按钮, 关闭防火墙的日志打印,都会输出到这个界面中。 如下图所示:

预览信息
点击上图中“下一步”按钮,系统进入预览信息界面,当前界面将会把配置信息进行汇总并显示,如下图所示:

集群部署
点击上图中“确定”按钮,系统进入集群部署界面,如下图:

图中按钮功能如下:
- 重新部署:当集群安装过程中出现中断(例如:数据库启动超时),部署集群的流程也随之中断,这个时候根据报错排查问题后,“重新部署”按钮就可以重新部署集群。
- 部署:执行部署集群操作。
- 取消:放弃本次部署操作,并且在后台中将生成的集群相关的文件删除。
这里点击“部署”按钮,系统开始执行集群部署操作。执行过程截图如下:

部署时的界面打印。此界面将执行命令,返回结果等均进行输出,便于错误时候的查询报错信息。也便于学习和理解KingbaseES的部署流程步骤。

到此,集群部署顺利完成。
以此类推,进行第三个或第四个等节点的部署。
日志查询功能
此功能对特定节点进行日志输出功能。
新建日志查询
右键单击“日志查询”节点,弹出菜单,选择“选择新建日志查询”,右键菜单如下图:

工具打开新建日志查询窗口,如下图:

新建日志查询属性介绍:
配置项 | 描述 |
显示名称 | 新建的日志节点名称,只能是英文、数字、下划线或者三者组合, 不能为空。 |
主机名或IP地址 | 当前节点(服务器)的IP地址或主机名。 当“开启hostname”选项未勾选时,此处名称为IP地址。 |
securecmd端口 | 工具连接节点或者直接向节点发起指令时, 创建连接所使用到的securecmd服务端口号,默认为8890,可根据环境修改 |
securecmd用户名 | 工具连接节点需要通过指定用户连接的用户名 |
securecmd密码 | 对应用户名的用户密码 |
数据库Data路径 | 节点所安装的数据库对应的Data目录的路径 |
日志查看
右键单击日志节点,弹出菜单,选择“日志查看”,右键菜单如下图:

显示日志查看窗口,如下图所示:

此窗口最多显示300条最新数据,每十秒会执行自动刷新操作更新日志信息。
当端口出现异常或关闭时,将提示连接失败,如下图:

修改日志查询
在日志节点菜单中选择“修改日志查询”,打开修改日志查询界面,如下图所示:

可对参数进行修改。
删除日志节点
在右键日志节点中选择“删除”,然后提示删除成功后,则删除完成,如下图所示:

集群管理
集群查看
双击集群名称后,显示集群状态。弹出菜单如下图所示:

显示集群状态中包含: 上游节点、PID、是否暂停、最后一次观测到的时间等。右下角有刷新按钮,方便更新集群状态。
集群运行信息:
ID -- 数据库节点ID
Name -- 数据库在集群内部名称
Role -- 数据库节点角色,有primary和standby两种
Status -- 状态, *running 和 running两种状态是正常运行状态,还有其他的状态,都是异常
Upstream -- 上游节点名称,即:从哪个节点同步数据
Hamgrd -- 管理软件remgrd的运行状态
PID -- 管理软件repmgrd的进程ID
Paused -- 管理软件repmgrd是否暂停
Upstream last seen-- 本节点距离上一次同步数据的时间(单位:秒)
节点查看
左键双击需要查看的节点名称,查看节点信息:
操作系统信息

数据库信息

HAmgr配置

sys_wal信息

archive信息

用户占用数据库连接数量

IP占用数据库连接数量

数据库连接状态

控制文件信息

License信息

删除节点
若集群整体处于已停止状态,所有节点允许删除。若集群处于已启用状态,主节点不允许删除。 删除节点成功后,提示用户“只删除工具端配置文件,服务器数据未删除”,需要用户手动删除。
鼠标右键点击需要删除的节点,弹出菜单如下图所示:





