通用机V8R6集群部署_1主1备1见证_图形化_Centos7

KingbaseES 提供数据库部署工具进行数据库集群的部署。KingbaseES 提供基于图形化和命令行操作的集群部署方式,本文档主要用于指导不支持 GUI 的服务器上的 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

备节点

node3

X86_64

192.168.40.154

Centos 7.9 x86_64

64

2G

40G

见证节点

最小配置要求 :

最低标准

CPU

主流的32位或64位CPU

内存

1GB以上

硬盘

1GB以上空闲空间

网络拓普图

系统参数配置

--安装支持图形化的依赖包
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 firewalld

SELinux安全设置

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* #安装中文字库

--集群需要的依赖包
yum install -y net-tools
yum install -y unzip
yum install -y lsof

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=no
system.conf文件配置
vim /etc/systemd/system.conf
#修复服务最大进程数限制,某些操作系统会有此限制
DefaultTasksAccounting=no 或DefaultTasksMax=65536
#执行以下命令生效,重启服务
systemctl daemon-reload
systemctl restart systemd-logind.service

systemd 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

--允许root登录
vim /etc/ssh/sshd_config 
#PermitRootLogin yes  更改为 PermitRootLogin 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 /KDBARCH
chown -R kingbase:kingbase /KDBARCH

注意:

安装目录和数据目录暂时不能修改,默认路径/home/kingbase/cluster/项目名/集群名下。安装过程中会提示指定安装目录和数据目录,如果目录不存在安装程序会自动创建。

需每个节点都创建归档目录,不然部署集群过程中会报错。

介质准备

访问金仓数据库官网下载金仓最新版本的数据库
目前金仓官方提供了所有可支持的平台的数据库版本和license,KingbaseES数据库最新版本为V8R6,先前分为单机版和集群版2种安装介质,现已合成1个安装介质,不再区分单机版和集群版。

安装介质下载并上传

数据库软件官方下载地址:人大金仓-成为世界卓越的数据库产品与服务提供商

授权文件下载并上传

授权文件官方下载地址:人大金仓-成为世界卓越的数据库产品与服务提供商

集群部署

挂载安装包

--挂载安装包
[root@localhost opt]# mount /opt/KingbaseES_V008R006C008B0014_Lin64_install.iso /mnt
mount: /dev/loop0 is write-protected, mounting read-only

--拷贝安装介质文件至kingbase用户下
[root@localhost kingbase]# cd /mnt
[root@localhost mnt]# cp -r * /home/kingbase/

--拷贝授权文件至kingbase用户下并解压
[root@localhost ~]# cp /opt/license_企业版.zip /home/kingbase/
[root@localhost ~]# cd /home/kingbase/
[root@localhost kingbase]# ls -l
total 8
-rw-r--r--. 1 root     root     2735 Jan  5 10:50 license_企业版.zip
dr-xr-xr-x. 2 kingbase kingbase   54 Jan  5 10:32 setup
-r-xr-xr-x. 1 kingbase kingbase 3933 Jan  5 10:32 setup.sh
[root@localhost kingbase]# unzip license_企业版.zip

--赋予权限
[root@localhost kingbase]# chown -R kingbase:kingbase /home/kingbase/

安装数据库软件

1、进入install目录,执行sh setup.sh,开始使用图形化方式安装数据库(不能用root用户)

运行桌面上的Xmanager - Passive

su - kingbase
echo $LANG
export LANG=en_US.UTF-8
sh setup.sh -i console

2、输入Y同意协议,继续下一步


Add: 3 layer, B block, Information Industrial Park, Rongda Road 7, Chaoyang 
District, Beijing, 100102 China
Tel: 86-10-5885 1118
Http: //www.kingbase.com.cn
National Hotline: 400-601-1188
Support E-mail: support@kingbase.com.cn


DO YOU ACCEPT THE TERMS OF THIS LICENSE AGREEMENT? (Y/N): 
DO YOU ACCEPT THE TERMS OF THIS LICENSE AGREEMENT? (Y/N): y

3、选择安装类型

选择客户端

Please choose the Install Set to be installed by this installer.

  ->1- Full
    2- Client

    3- Custom

ENTER THE NUMBER FOR THE INSTALL SET, OR PRESS <ENTER> TO ACCEPT THE DEFAULT
   : 2

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

Choose Install Folder
---------------------

Please choose a destination folder for this installation.

Where would you like to install?

  Default Install Folder: /opt/Kingbase/ES/V8

ENTER AN ABSOLUTE PATH, OR PRESS <ENTER> TO ACCEPT THE DEFAULT
      : /KDBV8R6
INSTALL FOLDER IS: /KDBV8R6
   IS THIS CORRECT? (Y/N): y

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

Pre-Installation Summary
------------------------

Please Review the Following Before Continuing:

Product Name:
    KingbaseES V8

Install Folder:
    /KDBV8R6

Product Features:
    INTERFACE,
    DEPLOY,
    KSTUDIO,
    KDTS

Install Disk Space Information
    Require Disk space : 4653 MB           Free Disk Space : 29918 MB

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

Ready To Install
----------------

InstallAnywhere is now ready to install KingbaseES V8 onto your system at the 
following location:

   /KDBV8R6

PRESS <ENTER> TO INSTALL: 



===============================================================================
Installing...
-------------

 [==================|==================|==================|==================]
 [------------------|------------------|------------------|-------------
 Installation Complete
---------------------

Congratulations. KingbaseES V8 has been successfully installed to:

   /KDBV8R6

PRESS <ENTER> TO EXIT THE INSTALLER: 
Complete.

问题处理

linux打开图形化界面报错
--问题描述
Graphical installers are not supported by the VM. The console mode should be used instead...

--尝试办法1
修改ssh配置
vi /etc/ssh/sshd_config
...
#AllowAgentForwarding yes
AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no 
#PermitTTY yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes

重启服务
systemctl  restart sshd

安装依赖
yum install -y xorg-x11-xauth #安装x11组件包
yum -y install wqy-zenhei-fonts* #安装中文字库

--尝试办法2
xshell用kingbase连接 

--最终解决办法
export DISPLAY=192.168.16.122:0.0
改成
export DISPLAY=192.168.40.10:0.0

启动部署工具

部署工具介绍

数据库部署工具由纯java编写,用户仅需知道所需部署服务器的ip、port等信息,再根据工具的引导,输入集群脚本的关键参数,完成集群的引导步骤即可部署一套完整的集群服务,同时还提供集群状态监控服务。部署完成后,集群状态可被实时监控,在出现错误后提供日志供予错误分析,还可在查看监控的同时,修改集群参数,进行配置下发,以达到最好的状态。

功能概括:

  1. 集群项目名称:首先,创建一个项目。R6用项目来概括一个集群的总单位。项目管理是对集群进行一个分组的管理,将隶属于一个项目的集群放在一起统一进行管理。例如:XX所的集群A、集群B,两个集群并列显示。
  2. 集群:包含创建集群、集群删除、集群启停、暂停/恢复自动功能、主备切换、集群状态查看、修改集群密码、修改配置参数为一体的功能模块。集群创建时,根据用户输入,创建集群的“节点通用配置”,创建完成后,集群名称下生成三个子节点:“节点通用配置”、“节点管理”、“监控管理”。
  3. 节点通用配置:在创建集群时,填写参数配置集群的所有节点的操作系统、数据库、repmgr通用配置,目的是为了减少在创建节点的过程中,重复的填写相同的内容。
  4. 节点管理:对当前部署集群的节点进行管理,包含新增节点,删除节点,节点信息查看等功能。节点部署过程中,可对节点进行环境检测,并提供“一键修改系统参数”、“关闭防火墙”等功能。
  5. 监控管理:是对整个集群的运行状态进行监控,包括:服务器状态和数据库状态。

警告

部署工具部署集群后,不支持手工在服务器修改集群相关配置参数,若进行修改,会导致工具无法获取其修改信息而导致集群异常。

启动数据库部署工具

命令行进入到安装目录下$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.40.10:0.0
cd /KDBV8R6/ClientTools/guitools/DeployTools
./deploy

问题处理
启动数据库部署工具没反应
--问题描述
[kingbase@localhost DeployTools]$ ./deploy
tools: Fatal IO error 0 (成功) on X server 192.168.40.10:0.0.
Deploy: 无法打开显示:
Deploy:
JVM terminated. Exit code=1
/KDBV8R6/KESRealPro/V008R006C008B0014/ClientTools/guitools/DeployTools//../../../install/jre/bin/java
-Dorg.eclipse.swt.browser.XULRunnerPath=/KDBV8R6/xulrunner
-jar /KDBV8R6/KESRealPro/V008R006C008B0014/ClientTools/guitools/DeployTools//plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
-os linux
-ws gtk
-arch x86_64
-showsplash
-launcher /KDBV8R6/KESRealPro/V008R006C008B0014/ClientTools/guitools/DeployTools/deploy
-name Deploy
--launcher.library /KDBV8R6/KESRealPro/V008R006C008B0014/ClientTools/guitools/DeployTools//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20150204-1316/eclipse_1607.so
-startup /KDBV8R6/KESRealPro/V008R006C008B0014/ClientTools/guitools/DeployTools//plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.overrideVmargs
-exitdata 1a
--showsplash
-vm /KDBV8R6/KESRealPro/V008R006C008B0014/ClientTools/guitools/DeployTools//../../../install/jre/bin/java
-vmargs
-Dorg.eclipse.swt.browser.XULRunnerPath=/KDBV8R6/xulrunner
-jar /KDBV8R6/KESRealPro/V008R006C008B0014/ClientTools/guitools/DeployTools//plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar 


--解决办法
主节点,内存由2G扩展到4G解决了,不晓得是否是内容不足导致,反正是图形化界面显示了

创建项目

1、在开启的“数据库部署工具”中,关闭欢迎窗口。然后点击左上角的“窗口”菜单

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

界面属性介绍如下:

projectName:新建项目的名称,只能是英文、数字、下划线或者三者组合,不能为空

根据实际的情况填入信息,然后点击界面右下角的按钮。按钮功能如下:

OK:验证当前所输入的信息是否正确有效之后,创建项目,并将该信息记录到隐藏文件下的配置文件中。

Cancel:放弃本次操作,并关闭当前创建项目的窗口

创建集群

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

创建集群窗口,分为节点通用配置和db&repmgr配置两项。

节点通用配置

项目创建成功后,在创建集群时,进行节点通用配置。

注意事项:创建集群成功后,节点通用配置参数将不能再修改。

界面如下:

节点通用配置界面属性说明

配置项

描述

集群名称

新建的集群名称,只能是英文、数字、下划线或者三者组合,不能为空。

节点通用配置

当前配置适用于整个集群的所有节点,可以免除创建节点时重复 填写相同的值。

节点类型

选择当前创建的集群是通用机或者专用机,默认为通用机。

securecmd端口

工具连接节点或者直接向节点发起指令时, 创建连接所使用到的securecmd服务端口号,默认为8890,可根据环境修改

常规用户

部署集群所使用的账户,集群将会创建在该账户之下。 如果用户不存在,工具负责创建(创建用户命令为:useradd -g -m ), 并设置默认密码(123456)。

默认路径

集群安装的路径,路径由工具根据项目名称,集群名称拼接而成 且不可修改。

db&repmgr配置

填写完成后点击“下一步”进入到db&repmgr配置,如下图:

基本设置界面属性介绍

配置项

描述

选择数据库zip包

点击选择按钮,选择db.zip。

补充:

db.zip文件位置

/KDBV8R6/KESRealPro/V008R006C008B0014/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文件位置

/KDBV8R6/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环境。 如下图所示:

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

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

预览信息

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

集群部署

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

图中按钮功能如下:

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

这里点击“部署”按钮,系统开始执行集群部署操作。执行过程截图如下:

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

到此,集群部署顺利完成。

以此类推,进行第二个节点的部署。

补充:部署过程中命令

新增备节点

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

ssh配置

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

ssh配置项说明

配置项

描述

使用ssh启动securecmd

单选项,默认选中。 此项选中时,ssh端口、root密码、选择securecmd文件、 securecmd路径四项需配置。 可使用ssh方式上传并启用securecmd。

补充:

securecmd文件位置

/KDBV8R6/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的上传路径。

节点配置示例

问题处理
无法检查securecmd端口进程使用情况,请安装Isof或netstat命令

解决办法:

[root@localhost ~]# yum install -y net-tools
上传securecmd失败

解决办法:

[root@localhost ~]# yum install -y unzip
上传的过程中会解压,如果未安装unzip依赖包,会提示上传securecmd失败。
节点环境检测

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

点击“检查”按钮, 环境参数的信息检测都会输出到这个界面中。输出信息中可能会出现红色和黄色提示,被标为红色ERROR的提示,意为不允许安装集群,用户需解决后,才可继续进行下一步。黄色警告意为不解决可能会导致集群出现问题隐患。例如:

(1)防火墙,有些用户和系统必须开,那么就需要用户将集群使用到的端口号添加到防火墙白名单中。

(2)检查发现[ulimit.open proc] is null,则需要检查一下集群用户的shell环境。 如下图所示:

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

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

预览信息

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

集群部署

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

图中按钮功能如下:

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

这里点击“部署”按钮,系统开始执行集群部署操作。执行过程截图如下:

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

到此,集群部署顺利完成。

以此类推,进行第三个或第四个等节点的部署。

补充:部署过程中命令
[上传安装包&解压]

[忽略]
[License操作]
ln -s '/home/kingbase/cluster/topsy/syxk/license_29296_0.dat' /home/kingbase/cluster/topsy/syxk/kingbase/bin/license.dat;chmod 766 /home/kingbase/cluster/topsy/syxk/kingbase/bin/license.dat
 exitStatus=0

[创建etc目录]

su - kingbase -c " mkdir -p /home/kingbase/cluster/topsy/syxk/kingbase/etc;touch /home/kingbase/cluster/topsy/syxk/kingbase/etc/repmgr.conf;touch /home/kingbase/cluster/topsy/syxk/kingbase/etc/all_nodes_tools.conf;mkdir -p /KDBARCH;" 

mkdir: cannot create directory ‘/KDBARCH’: Permission denied


 exitStatus=1

[上传安装包&解压]


[忽略]

[License操作]

ln -s '/home/kingbase/cluster/topsy/syxk/license_29296_0.dat' /home/kingbase/cluster/topsy/syxk/kingbase/bin/license.dat;chmod 766 /home/kingbase/cluster/topsy/syxk/kingbase/bin/license.dat

ln: failed to create symbolic link ‘/home/kingbase/cluster/topsy/syxk/kingbase/bin/license.dat’: File exists


 exitStatus=0

[创建etc目录]

su - kingbase -c " mkdir -p /home/kingbase/cluster/topsy/syxk/kingbase/etc;touch /home/kingbase/cluster/topsy/syxk/kingbase/etc/repmgr.conf;touch /home/kingbase/cluster/topsy/syxk/kingbase/etc/all_nodes_tools.conf;mkdir -p /KDBARCH;" 


 exitStatus=0

[repmgr.conf文件配置]


[update repmgr.conf configuration completed.]

[all_nodes_tools.conf文件配置]


[update all_nodes_tools.conf configuration completed.]

[创建备节点]

su - kingbase -c "  find /home/kingbase/cluster/topsy/syxk/kingbase/bin/ ! -name arping | xargs chmod +x ;/home/kingbase/cluster/topsy/syxk/kingbase/bin/repmgr.sh create_standby_node  \"192.168.40.152\" " 

[Fri Jan  5 20:21:57 CST 2024] [INFO] /home/kingbase/cluster/topsy/syxk//kingbase/bin/sys_securecmd -p 8890 -o StrictHostKeyChecking=no -o ConnectTimeout=10 -l kingbase -T 192.168.40.152 "cat /home/kingbase/cluster/topsy/syxk//kingbase/etc/repmgr.conf " > /home/kingbase/cluster/topsy/syxk//kingbase/etc/repmgr.conf
[WARNING] following problems with command line parameters detected:
[Fri Jan  5 20:21:58 CST 2024] [INFO] success
  -D/--sysdata will be ignored if a repmgr configuration file is provided
[Fri Jan  5 20:21:58 CST 2024] [INFO] /home/kingbase/cluster/topsy/syxk//kingbase/bin/sys_securecmd -p 8890 -o StrictHostKeyChecking=no -o ConnectTimeout=10 -l kingbase -T 192.168.40.152 "cat ~/.encpwd " > ~/.encpwd
[NOTICE] destination directory "/home/kingbase/cluster/topsy/syxk/kingbase/data" provided
[Fri Jan  5 20:21:58 CST 2024] [INFO] success
[INFO] connecting to source node
[Fri Jan  5 20:21:58 CST 2024] [INFO] success
[DETAIL] connection string is: host=192.168.40.152 user=esrep port=54321 dbname=esrep
[Fri Jan  5 20:21:58 CST 2024] [INFO] PARAMETER_NAME=node_id
[DETAIL] current installation size is 67 MB
[Fri Jan  5 20:21:58 CST 2024] [INFO] success
[NOTICE] checking for available walsenders on the source node (2 required)
[Fri Jan  5 20:21:58 CST 2024] [INFO] PARAMETER_VALUES='2'
[NOTICE] checking replication connections can be made to the source server (2 required)
[Fri Jan  5 20:21:58 CST 2024] [INFO] success
[INFO] creating directory "/home/kingbase/cluster/topsy/syxk/kingbase/data"...
[Fri Jan  5 20:21:58 CST 2024] [INFO] PARM_EXIST=1
[INFO] creating replication slot as user "esrep"
[Fri Jan  5 20:21:58 CST 2024] [INFO] success
[NOTICE] starting backup (using sys_basebackup)...
[Fri Jan  5 20:21:58 CST 2024] [INFO] sed -i "/[#]*node_id[ ]*=/cnode_id='2'" /home/kingbase/cluster/topsy/syxk//kingbase/etc/repmgr.conf
[INFO] executing:
[Fri Jan  5 20:21:58 CST 2024] [INFO] success
  /home/kingbase/cluster/topsy/syxk/kingbase/bin/sys_basebackup -l "repmgr base backup"  -D /home/kingbase/cluster/topsy/syxk/kingbase/data -h 192.168.40.152 -p 54321 -U esrep -c fast -X stream -S repmgr_slot_2 
[Fri Jan  5 20:21:58 CST 2024] [INFO] PARAMETER_NAME=node_name
[NOTICE] standby clone (using sys_basebackup) complete
[Fri Jan  5 20:21:58 CST 2024] [INFO] success
[NOTICE] you can now start your Kingbase server
[Fri Jan  5 20:21:58 CST 2024] [INFO] PARAMETER_VALUES='node2'
[HINT] for example: sys_ctl -D /home/kingbase/cluster/topsy/syxk/kingbase/data start
[Fri Jan  5 20:21:58 CST 2024] [INFO] success
[HINT] after starting the server, you need to register this standby with "repmgr standby register"
[Fri Jan  5 20:21:58 CST 2024] [INFO] PARM_EXIST=1
[INFO] connecting to local node "node2" (ID: 2)
[Fri Jan  5 20:21:58 CST 2024] [INFO] success
[INFO] connecting to primary database
[Fri Jan  5 20:21:58 CST 2024] [INFO] sed -i "/[#]*node_name[ ]*=/cnode_name='node2'" /home/kingbase/cluster/topsy/syxk//kingbase/etc/repmgr.conf
[WARNING] --upstream-node-id not supplied, assuming upstream node is primary (node ID: 1)
[Fri Jan  5 20:21:58 CST 2024] [INFO] success
[INFO] standby registration complete
[Fri Jan  5 20:21:58 CST 2024] [INFO] PARAMETER_NAME=conninfo
[NOTICE] standby node "node2" (ID: 2) successfully registered
[Fri Jan  5 20:21:58 CST 2024] [INFO] success
[Fri Jan  5 20:21:58 CST 2024] [INFO] PARAMETER_VALUES='host
[Fri Jan  5 20:21:58 CST 2024] [INFO] success
[Fri Jan  5 20:21:58 CST 2024] [INFO] PARM_EXIST=1
[Fri Jan  5 20:21:58 CST 2024] [INFO] success
[Fri Jan  5 20:21:58 CST 2024] [INFO] sed -i "/[#]*conninfo[ ]*=/cconninfo='host=192.168.40.153 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3 tcp_user_timeout=9000'" /home/kingbase/cluster/topsy/syxk//kingbase/etc/repmgr.conf
[Fri Jan  5 20:21:58 CST 2024] [INFO] success
[Fri Jan  5 20:21:58 CST 2024] [INFO] PARAMETER_NAME=net_device
[Fri Jan  5 20:21:58 CST 2024] [INFO] success
[Fri Jan  5 20:21:58 CST 2024] [INFO] PARAMETER_VALUES=''
[Fri Jan  5 20:21:58 CST 2024] [INFO] success
[Fri Jan  5 20:21:58 CST 2024] [INFO] PARAMETER_NAME=net_device_ip
[Fri Jan  5 20:21:58 CST 2024] [INFO] success
[Fri Jan  5 20:21:58 CST 2024] [INFO] PARAMETER_VALUES=''
[Fri Jan  5 20:21:58 CST 2024] [INFO] success
[Fri Jan  5 20:21:58 CST 2024] [INFO] /home/kingbase/cluster/topsy/syxk//kingbase/bin/repmgr -h 192.168.40.152 -U esrep -d esrep -p 54321 --fast-checkpoint -D /home/kingbase/cluster/topsy/syxk/kingbase/data standby clone
[Fri Jan  5 20:21:59 CST 2024] [INFO] success
[Fri Jan  5 20:21:59 CST 2024] [INFO] /home/kingbase/cluster/topsy/syxk//kingbase/bin/sys_ctl start -w -t 90 -D /home/kingbase/cluster/topsy/syxk/kingbase/data -o --port=54321
waiting for server to start....2024-01-05 20:21:59.783 CST [7506] LOG:  sepapower extension initialized
2024-01-05 20:21:59.790 CST [7506] LOG:  starting KingbaseES V008R006C008B0014 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
2024-01-05 20:21:59.790 CST [7506] LOG:  listening on IPv4 address "0.0.0.0", port 54321
2024-01-05 20:21:59.790 CST [7506] LOG:  listening on IPv6 address "::", port 54321
2024-01-05 20:21:59.792 CST [7506] LOG:  listening on Unix socket "/tmp/.s.KINGBASE.54321"
2024-01-05 20:21:59.857 CST [7506] LOG:  redirecting log output to logging collector process
2024-01-05 20:21:59.857 CST [7506] HINT:  Future log output will appear in directory "sys_log".
 done
server started
[Fri Jan  5 20:21:59 CST 2024] [INFO] success
[Fri Jan  5 20:21:59 CST 2024] [INFO] /home/kingbase/cluster/topsy/syxk//kingbase/bin/repmgr standby register -F
[Fri Jan  5 20:22:02 CST 2024] [INFO] success
[RUNNING] set scale_ip as 192.168.40.153...OK
[RUNNING] query archive command at 192.168.40.152 ...
[RUNNING] current cluster not config sys_rman,return.


 exitStatus=0

[检测节点注册]

su - kingbase -c " /home/kingbase/cluster/topsy/syxk/kingbase/bin/repmgr cluster show " 

[repmgr register success]

 exitStatus=0

[启动节点]

su - kingbase -c " /home/kingbase/cluster/topsy/syxk/kingbase/bin/sys_monitor.sh start   2>&1;" 

2024-01-05 20:22:03 Ready to start all DB ...
2024-01-05 20:22:03 begin to start DB on "[192.168.40.153]".
2024-01-05 20:22:04 DB on "[192.168.40.153]" already started, connect to check it.
2024-01-05 20:22:05 DB on "[192.168.40.153]" start success.
2024-01-05 20:22:05 Try to ping trusted_servers on host 192.168.40.152 ...
2024-01-05 20:22:09 Try to ping trusted_servers on host 192.168.40.153 ...
2024-01-05 20:22:12 begin to start DB on "[192.168.40.152]".
2024-01-05 20:22:13 DB on "[192.168.40.152]" already started, connect to check it.
2024-01-05 20:22:14 DB on "[192.168.40.152]" start success.
 ID | Name  | Role    | Status    | Upstream | Location | Priority | Timeline | LSN_Lag | Connection string                                                                                                                                                       
----+-------+---------+-----------+----------+----------+----------+----------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 1  | node1 | primary | * running |          | default  | 100      | 1        |         | host=192.168.40.152 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3 tcp_user_timeout=9000
 2  | node2 | standby |   running | node1    | default  | 100      | 1        | 0 bytes | host=192.168.40.153 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3 tcp_user_timeout=9000
2024-01-05 20:22:14 The primary DB is started.
2024-01-05 20:22:15 begin to start repmgrd on "[192.168.40.152]".
2024-01-05 20:22:16 repmgrd on "[192.168.40.152]" already started.
2024-01-05 20:22:16 begin to start repmgrd on "[192.168.40.153]".
[2024-01-05 20:22:17] [NOTICE] using provided configuration file "/home/kingbase/cluster/topsy/syxk/kingbase/bin/../etc/repmgr.conf"
[2024-01-05 20:22:17] [INFO] creating directory "/home/kingbase/cluster/topsy/syxk/kingbase/log"...
[2024-01-05 20:22:17] [NOTICE] redirecting logging output to "/home/kingbase/cluster/topsy/syxk/kingbase/log/hamgr.log"

2024-01-05 20:22:19 repmgrd on "[192.168.40.153]" start success.
 ID | Name  | Role    | Status    | Upstream | repmgrd | PID   | Paused? | Upstream last seen
----+-------+---------+-----------+----------+---------+-------+---------+--------------------
 1  | node1 | primary | * running |          | running | 12422 | no      | n/a                
 2  | node2 | standby |   running | node1    | running | 7812  | no      | 0 second(s) ago    
[2024-01-05 20:22:26] [NOTICE] redirecting logging output to "/home/kingbase/cluster/topsy/syxk/kingbase/log/kbha.log"

[2024-01-05 20:22:28] [NOTICE] redirecting logging output to "/home/kingbase/cluster/topsy/syxk/kingbase/log/kbha.log"

2024-01-05 20:22:30 Done.


 exitStatus=0
问题处理
创建etc目录执行出错

原因是采用了自定义的归档路径,未使用默认归档路径,事先未创建自定义的归档路径。

解决办法

--归档目录
su - root
mkdir -p /KDBARCH
chown -R kingbase:kingbase /KDBARCH

新增Witness节点

witness节点是一个正常的KingbaseES实例,不是流复制群集的一部分;其目的是,如果发生故障转移情况,则提供证明它是主服务器本身不可用的证据,而不是例如在不同物理位置之间的网络分裂。

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

Witness节点ssh配置

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

Witness节点配置
Witness节点配置项说明

配置项

描述

Witness名称

用户自 定义的Witness节点名称(服务器的别名) ,最终将会显示在左侧的树形菜单中。

主机名或IP地址

当前节点(服务器)的IP地址或主机名 当“开启hostname”选项未勾选时, 此处名称为IP地址。

securecmd端口、常规用户、 默认路径

此三项均来自通用 配置中,无需再次填写,且无法修改 。详细介绍参见通用配置参数介绍。

系统节点名称

系统节点名 称是用于记录在数据库配置文件中的 节点(服务器)别名,目前采用node + ip最后一段的拼接的方式命名。

选择license文件

此项主要 是针对非保密机集群。需要填写集群 节点所需要的license的上传路径。

Witness节点配置示例

问题处理
无法检查securecmd端口进程使用情况,请安装Isof或netstat命令

解决办法:

[root@localhost ~]# yum install -y net-tools
上传securecmd失败

解决办法:

[root@localhost ~]# yum install -y unzip
上传的过程中会解压,如果未安装unzip依赖包,会提示上传securecmd失败。
securecmd路径目录不为空

解决办法:

由于是中途取消,目录中文件未回滚删除,再次部署Witness节点提示上述报错。

[root@localhost ~]# cd /home/kingbase/cluster/
[root@localhost cluster]# ls -l
total 2524
drwxrwxr-x 5 kingbase kingbase      41 Sep  2 04:18 securecmdd
-rwxr-xr-x 1 kingbase root     2584328 Jan  5 20:37 securecmdd.zip
drwxr-xr-x 3 kingbase kingbase      18 Jan  5 20:38 topsy
[root@localhost cluster]# rm -rf *
[root@localhost cluster]#
端口 8890进程已存在,但无法使用securecmd

解决办法

--安装lsof依赖包
[root@localhost cluster]# yum install -y lsof

--查看占用端口的程序和pid
[root@localhost cluster]# lsof -i:8890
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sys_secur 2453 root    3u  IPv4  57276      0t0  TCP *:ddi-tcp-3 (LISTEN)
sys_secur 2453 root    4u  IPv6  57277      0t0  TCP *:ddi-tcp-3 (LISTEN)
[root@localhost cluster]# ps -ef | grep 2453
root       2453      1  0 17:37 ?        00:00:00 sys_securecmdd: /home/kingbase/cluster/securecmdd/bin/sys_securecmdd -f /etc/.kes/securecmdd_config [listener] 0 of 128-256 startups
root       6455   6316  0 18:17 pts/0    00:00:00 grep --color=auto 2453

--杀掉端口
[root@localhost cluster]# kill -9 2453
节点环境检测

预览信息

集群部署

补充:部署过程中命令


[\u4e0a\u4f20\u5b89\u88c5\u5305&\u89e3\u538b]


[\u5ffd\u7565]

[License\u64cd\u4f5c]

ln -s '/home/kingbase/cluster/topsy/syxk/license_29296_0.dat' /home/kingbase/cluster/topsy/syxk/kingbase/bin/license.dat;chmod 766 /home/kingbase/cluster/topsy/syxk/kingbase/bin/license.dat


 exitStatus=0

[\u521d\u59cb\u5316\u6570\u636e\u5e93]

su - kingbase -c " specialPwd=\"`echo a2luZ2Jhc2U= 2>/dev/null | base64 -d`\"; find /home/kingbase/cluster/topsy/syxk/kingbase/bin/ ! -name arping | xargs chmod +x ;/home/kingbase/cluster/topsy/syxk/kingbase/bin/repmgr.sh initdb \${specialPwd} /home/kingbase/cluster/topsy/syxk/kingbase/data/sys_wal" 

[Sat Jan  6 18:30:56 CST 2024] [INFO] /home/kingbase/cluster/topsy/syxk//kingbase/bin/initdb -U "system" -E UTF-8 -m pg -D /home/kingbase/cluster/topsy/syxk/kingbase/data -A scram-sha-256 -x ******  --data-checksums --lc-collat=en_US.UTF-8 --lc-ctype=en_US.UTF-8
The files belonging to this database system will be owned by user "kingbase".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default text search configuration will be set to "english".

The comparision of strings is case-sensitive.
Data page checksums are enabled.

creating directory /home/kingbase/cluster/topsy/syxk/kingbase/data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Asia/Shanghai
creating configuration files ... ok
Begin setup encrypt device
initializing the encrypt device ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
create security database ... ok
load security database ... ok
syncing data to disk ... ok

Success. You can now start the database server using:

    /home/kingbase/cluster/topsy/syxk/kingbase/bin/sys_ctl -D /home/kingbase/cluster/topsy/syxk/kingbase/data -l logfile start

[Sat Jan  6 18:30:58 CST 2024] [INFO] success


 exitStatus=0

[\u521b\u5efaetc\u76ee\u5f55]

su - kingbase -c " mkdir -p /home/kingbase/cluster/topsy/syxk/kingbase/etc;touch /home/kingbase/cluster/topsy/syxk/kingbase/etc/repmgr.conf;touch /home/kingbase/cluster/topsy/syxk/kingbase/etc/all_nodes_tools.conf;mkdir -p /KDBARCH;" 

mkdir: cannot create directory \u2018/KDBARCH\u2019: Permission denied


 exitStatus=1

[\u4e0a\u4f20\u5b89\u88c5\u5305&\u89e3\u538b]


[\u5ffd\u7565]

[License\u64cd\u4f5c]

ln -s '/home/kingbase/cluster/topsy/syxk/license_29296_0.dat' /home/kingbase/cluster/topsy/syxk/kingbase/bin/license.dat;chmod 766 /home/kingbase/cluster/topsy/syxk/kingbase/bin/license.dat

ln: failed to create symbolic link \u2018/home/kingbase/cluster/topsy/syxk/kingbase/bin/license.dat\u2019: File exists


 exitStatus=0

[\u521d\u59cb\u5316\u6570\u636e\u5e93]

su - kingbase -c " specialPwd=\"`echo a2luZ2Jhc2U= 2>/dev/null | base64 -d`\"; find /home/kingbase/cluster/topsy/syxk/kingbase/bin/ ! -name arping | xargs chmod +x ;/home/kingbase/cluster/topsy/syxk/kingbase/bin/repmgr.sh initdb \${specialPwd} /home/kingbase/cluster/topsy/syxk/kingbase/data/sys_wal" 

[Sat Jan  6 18:33:08 CST 2024] [INFO] /home/kingbase/cluster/topsy/syxk//kingbase/bin/initdb -U "system" -E UTF-8 -m pg -D /home/kingbase/cluster/topsy/syxk/kingbase/data -A scram-sha-256 -x ******  --data-checksums --lc-collat=en_US.UTF-8 --lc-ctype=en_US.UTF-8
The files belonging to this database system will be owned by user "kingbase".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default text search configuration will be set to "english".

The comparision of strings is case-sensitive.
Data page checksums are enabled.

creating directory /home/kingbase/cluster/topsy/syxk/kingbase/data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Asia/Shanghai
creating configuration files ... ok
Begin setup encrypt device
initializing the encrypt device ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
create security database ... ok
load security database ... ok
syncing data to disk ... ok

Success. You can now start the database server using:

    /home/kingbase/cluster/topsy/syxk/kingbase/bin/sys_ctl -D /home/kingbase/cluster/topsy/syxk/kingbase/data -l logfile start

[Sat Jan  6 18:33:10 CST 2024] [INFO] success


 exitStatus=0

[\u521b\u5efaetc\u76ee\u5f55]

su - kingbase -c " mkdir -p /home/kingbase/cluster/topsy/syxk/kingbase/etc;touch /home/kingbase/cluster/topsy/syxk/kingbase/etc/repmgr.conf;touch /home/kingbase/cluster/topsy/syxk/kingbase/etc/all_nodes_tools.conf;mkdir -p /KDBARCH;" 


 exitStatus=0

[es_rep.conf\u6587\u4ef6\u914d\u7f6e]


[update es_rep.conf configuration completed.]

[repmgr.conf\u6587\u4ef6\u914d\u7f6e]


[update repmgr.conf configuration completed.]

[all_nodes_tools.conf\u6587\u4ef6\u914d\u7f6e]


[update all_nodes_tools.conf configuration completed.]

[\u521b\u5efaWitness\u8282\u70b9]

su - kingbase -c " find /home/kingbase/cluster/topsy/syxk/kingbase/bin/ ! -name arping | xargs chmod +x;specialPwd=\"`echo a2luZ2Jhc2U= 2>/dev/null | base64 -d`\";/home/kingbase/cluster/topsy/syxk/kingbase/bin/repmgr.sh create_witness_node \${specialPwd} \"192.168.40.152\" " 

[Sat Jan  6 18:33:32 CST 2024] [INFO] /home/kingbase/cluster/topsy/syxk//kingbase/bin/sys_securecmd -p 8890 -o StrictHostKeyChecking=no -o ConnectTimeout=10 -l kingbase -T 192.168.40.152 "cat ~/.encpwd " > ~/.encpwd
[INFO] connecting to witness node "node3" (ID: 3)
[Sat Jan  6 18:33:32 CST 2024] [INFO] success
[INFO] connecting to primary node
[Sat Jan  6 18:33:32 CST 2024] [INFO] success
[NOTICE] attempting to install extension "repmgr"
[Sat Jan  6 18:33:32 CST 2024] [INFO] success
[NOTICE] "repmgr" extension successfully installed
[Sat Jan  6 18:33:32 CST 2024] [INFO] /home/kingbase/cluster/topsy/syxk//kingbase/bin/sys_ctl start -w -t 90 -D /home/kingbase/cluster/topsy/syxk/kingbase/data -o --port=54321
[INFO] witness registration complete
waiting for server to start....2024-01-06 18:33:32.822 CST [13234] LOG:  sepapower extension initialized
[NOTICE] witness node "node3" (ID: 3) successfully registered
2024-01-06 18:33:32.827 CST [13234] LOG:  starting KingbaseES V008R006C008B0014 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
2024-01-06 18:33:32.827 CST [13234] LOG:  listening on IPv4 address "0.0.0.0", port 54321
2024-01-06 18:33:32.827 CST [13234] LOG:  listening on IPv6 address "::", port 54321
2024-01-06 18:33:32.828 CST [13234] LOG:  listening on Unix socket "/tmp/.s.KINGBASE.54321"
2024-01-06 18:33:32.868 CST [13234] LOG:  redirecting log output to logging collector process
2024-01-06 18:33:32.868 CST [13234] HINT:  Future log output will appear in directory "sys_log".
 done
server started
[Sat Jan  6 18:33:32 CST 2024] [INFO] success
[Sat Jan  6 18:33:32 CST 2024] [INFO] /home/kingbase/cluster/topsy/syxk//kingbase/bin/ksql "user=system dbname=test port=54321" -c "create user "esrep" with login replication PASSWORD '******' in role kcluster;"
CREATE ROLE
[Sat Jan  6 18:33:32 CST 2024] [INFO] success
[Sat Jan  6 18:33:32 CST 2024] [INFO] /home/kingbase/cluster/topsy/syxk//kingbase/bin/ksql "user=system dbname=test port=54321" -c "create database "esrep";"
CREATE DATABASE
[Sat Jan  6 18:33:33 CST 2024] [INFO] success
[Sat Jan  6 18:33:33 CST 2024] [INFO] /home/kingbase/cluster/topsy/syxk//kingbase/bin/repmgr -h 192.168.40.152 -p 54321 witness register --superuser system
[Sat Jan  6 18:33:34 CST 2024] [INFO] success
[Sat Jan  6 18:33:34 CST 2024] [INFO] sed -i "/*:*:*:system:.*/d" ~/.encpwd
[Sat Jan  6 18:33:34 CST 2024] [INFO] success


 exitStatus=0

[\u68c0\u6d4b\u8282\u70b9\u6ce8\u518c]

su - kingbase -c " /home/kingbase/cluster/topsy/syxk/kingbase/bin/repmgr cluster show " 

[repmgr register success]

 exitStatus=0

[\u542f\u52a8Witness\u8282\u70b9]

su - kingbase -c " /home/kingbase/cluster/topsy/syxk/kingbase/bin/sys_monitor.sh start   2>&1;" 

2024-01-06 18:33:34 Ready to start all DB ...
2024-01-06 18:33:34 begin to start DB on "[192.168.40.154]".
2024-01-06 18:33:35 DB on "[192.168.40.154]" already started, connect to check it.
2024-01-06 18:33:36 DB on "[192.168.40.154]" start success.
2024-01-06 18:33:36 Try to ping trusted_servers on host 192.168.40.152 ...
2024-01-06 18:33:39 Try to ping trusted_servers on host 192.168.40.153 ...
2024-01-06 18:33:42 Try to ping trusted_servers on host 192.168.40.154 ...
2024-01-06 18:33:44 begin to start DB on "[192.168.40.152]".
2024-01-06 18:33:45 DB on "[192.168.40.152]" already started, connect to check it.
2024-01-06 18:33:46 DB on "[192.168.40.152]" start success.
2024-01-06 18:33:46 begin to start DB on "[192.168.40.153]".
2024-01-06 18:33:47 DB on "[192.168.40.153]" already started, connect to check it.
2024-01-06 18:33:48 DB on "[192.168.40.153]" start success.
 ID | Name  | Role    | Status    | Upstream | Location | Priority | Timeline | LSN_Lag | Connection string                                                                                                                                                       
----+-------+---------+-----------+----------+----------+----------+----------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 1  | node1 | primary | * running |          | default  | 100      | 1        |         | host=192.168.40.152 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3 tcp_user_timeout=9000
 2  | node2 | standby |   running | node1    | default  | 100      | 1        | 0 bytes | host=192.168.40.153 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3 tcp_user_timeout=9000
 3  | node3 | witness | * running | node1    | default  | 0        | n/a      |         | host=192.168.40.154 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3 tcp_user_timeout=9000
2024-01-06 18:33:48 The primary DB is started.
2024-01-06 18:33:48 begin to start repmgrd on "[192.168.40.152]".
2024-01-06 18:33:49 repmgrd on "[192.168.40.152]" already started.
2024-01-06 18:33:49 begin to start repmgrd on "[192.168.40.153]".
2024-01-06 18:33:49 repmgrd on "[192.168.40.153]" already started.
2024-01-06 18:33:49 begin to start repmgrd on "[192.168.40.154]".
[2024-01-06 18:33:50] [NOTICE] using provided configuration file "/home/kingbase/cluster/topsy/syxk/kingbase/bin/../etc/repmgr.conf"
[2024-01-06 18:33:50] [INFO] creating directory "/home/kingbase/cluster/topsy/syxk/kingbase/log"...
[2024-01-06 18:33:50] [NOTICE] redirecting logging output to "/home/kingbase/cluster/topsy/syxk/kingbase/log/hamgr.log"

2024-01-06 18:33:52 repmgrd on "[192.168.40.154]" start success.
 ID | Name  | Role    | Status    | Upstream | repmgrd | PID   | Paused? | Upstream last seen
----+-------+---------+-----------+----------+---------+-------+---------+--------------------
 1  | node1 | primary | * running |          | running | 12422 | no      | n/a                
 2  | node2 | standby |   running | node1    | running | 7812  | no      | 1 second(s) ago    
 3  | node3 | witness | * running | node1    | running | 13604 | no      | 1 second(s) ago    
[2024-01-06 18:33:55] [NOTICE] redirecting logging output to "/home/kingbase/cluster/topsy/syxk/kingbase/log/kbha.log"

[2024-01-06 18:33:59] [NOTICE] redirecting logging output to "/home/kingbase/cluster/topsy/syxk/kingbase/log/kbha.log"

[2024-01-06 18:34:02] [NOTICE] redirecting logging output to "/home/kingbase/cluster/topsy/syxk/kingbase/log/kbha.log"

2024-01-06 18:34:03 Done.


 exitStatus=0
问题处理
创建etc目录执行出错

原因是采用了自定义的归档路径,未使用默认归档路径,事先未创建自定义的归档路径。

解决办法

--归档目录
su - root
mkdir -p /KDBARCH
chown -R kingbase:kingbase /KDBARCH

日志查询功能

此功能对特定节点进行日志输出功能。

新建日志查询

右键单击“日志查询”节点,弹出菜单,选择“选择新建日志查询”,右键菜单如下图:

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

新建日志查询属性介绍

配置项

描述

显示名称

新建的日志节点名称,只能是英文、数字、下划线或者三者组合, 不能为空。

主机名或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-- 本节点距离上一次同步数据的时间(单位:秒)

提升至主库(需开启开发者模式)

关闭主节点

--
[kingbase@localhost ~]$ sys_ctl stop -D /home/kingbase/cluster/topsy/syxk/kingbase/data
waiting for server to shut down.... done
server stopped

查看集群状态

开启开发者模式

输入密码“rdjc12#$”,选择“正常”开启开发者模式。 在开发者模式下点击“开发者模式”会提示到您已经在此模式下,如下图所示:

提升为主库

所有主节点全部宕机或异常时,右键正常运行的备节点,”提升为主库”按钮变为可点击状态:


查看集群状态

刷新,查看集群状态

结束开发者模式

恢复至集群(需开启开发者模式)

若原主节点宕机,并且集群通过若干时间将1个备库提升出一个正常的主节点时,右键异常的原主节点,”恢复至集群”按钮变为可点击状态:

开启开发者模式

输入密码“rdjc12#$”,选择“正常”开启开发者模式。 在开发者模式下点击“开发者模式”会提示到您已经在此模式下,如下图所示:

恢复至集群

查看集群模式

结束开发者模式

节点查看

左键双击需要查看的节点名称,查看节点信息:

操作系统信息

数据库信息

HAmgr配置

sys_wal信息

archive信息

用户占用数据库连接数量

IP占用数据库连接数量

数据库连接状态

控制文件信息

License信息

删除节点

若集群整体处于已停止状态,所有节点允许删除。若集群处于已启用状态,主节点不允许删除。 删除节点成功后,提示用户“只删除工具端配置文件,服务器数据未删除”,需要用户手动删除。

鼠标右键点击需要删除的节点,弹出菜单如下图所示:

开发者模式

开发者模式为特殊情况下进入开发人员模式,进行一系列对数据库集群有关的操作(具体有:启动此节点数据库、恢复至集群、提升为主库、保留此主库)。此模式会在集群部署工具重新启动时自动关闭。此操作存在丢数危险,请谨慎操作。

开启开发者模式

点击集群部署工具的工具栏中的“帮助”,选择“开发者模式”进行开启,如下图所示:

输入密码“rdjc12#$”,选择“正常”开启开发者模式。 在开发者模式下点击“开发者模式”会提示到您已经在此模式下,如下图所示:

关闭开发者模式

点击集群部署工具的工具栏中的“帮助”,选择“关闭开发者模式”进行关闭,如下图所示:

启动/关闭集群

停止集群

鼠标右键选择集群,选择菜单中的停止集群,如下图所示:

启动集群

鼠标右键选择集群,选择菜单中的启动集群,如下图所示:

暂停/恢复功能

暂停功能

鼠标右键选择集群,选择菜单中的暂停自动功能,暂停功能是将集群的处于运行状态的自动功能停止掉,例如:自动切换、自动恢复。如下图所示:

该窗口为确认窗口,并对暂停自动功能有相应的提示和说明。图中有复选框dry-run,如果勾选复选框,工具会先尝试执行一次暂停自动功能的操作,尝试成功则直接执行暂停指令。反之,失败则不执行暂停指令。如果未勾选复选框,工具会直接执行暂停集群功能的指令。界面如下图所示:

集群功能被暂停后,在集群状态窗口可以查看到集群此时的状态。暂停状态会被现实成红色,并且有弹窗提示。如下图所示:

恢复功能

鼠标右键选择集群,选择菜单中的恢复自动功能,恢复功能是将集群的处于暂停状态的自动功能重新启动。如下图所示:

该窗口为确认窗口,并对恢复自动功能有相应的提示和说明。途中有复选框dry-run,如果勾选复选框,工具会先尝试执行一次恢复自动功能的操作,尝试成功则直接执行恢复指令。反之,失败则不执行恢复指令。如果未勾选复选框,工具会直接执行恢复集群功能的指令。界面如下图所示:

再次查看集群状态:

主备切换功能

鼠标右键选择集群,选择菜单中的主备切换功能,该功能可以将指定的备机提升为主机,剩下的所有备机继续跟随主机。如下图所示:

主备切换命令:

su - kingbase -c " /home/kingbase/cluster/topsy/syxk/kingbase/bin/repmgr standby switchover --force-rewind --siblings-follow " 
[NOTICE] executing switchover on node "node2" (ID: 2)
[INFO] The output from primary check cmd "repmgr node check --terse -LERROR --archive-ready --optformat" is: "--status=OK --files=0
"
[NOTICE] attempting to pause repmgrd on 3 nodes
[INFO] pausing repmgrd on node "node1" (ID 1)
[INFO] pausing repmgrd on node "node2" (ID 2)
[INFO] pausing repmgrd on node "node3" (ID 3)
[NOTICE] local node "node2" (ID: 2) will be promoted to primary; current primary "node1" (ID: 1) will be demoted to standby
[NOTICE] stopping current primary node "node1" (ID: 1)
[NOTICE] issuing CHECKPOINT on node "node1" (ID: 1) 
[DETAIL] executing server command "/home/kingbase/cluster/topsy/syxk/kingbase/bin/sys_ctl  -D '/home/kingbase/cluster/topsy/syxk/kingbase/data' -l /home/kingbase/cluster/topsy/syxk/kingbase/bin/logfile -W -m fast stop"
[INFO] checking for primary shutdown; 1 of 60 attempts ("shutdown_check_timeout")
[INFO] checking for primary shutdown; 2 of 60 attempts ("shutdown_check_timeout")
[NOTICE] current primary has been cleanly shut down at location 0/5000028
[NOTICE] promoting standby to primary
[DETAIL] promoting server "node2" (ID: 2) using pg_promote()
[NOTICE] waiting for promotion to complete, replay lsn: 0/50000A0
[NOTICE] STANDBY PROMOTE successful
[DETAIL] server "node2" (ID: 2) was successfully promoted to primary
[NOTICE] issuing CHECKPOINT
[NOTICE] node "node2" (ID: 2) promoted to primary, node "node1" (ID: 1) demoted to standby
[NOTICE] executing STANDBY FOLLOW on 1 of 1 siblings
INFO:  node 3 received notification to follow node 2
[INFO] STANDBY FOLLOW successfully executed on all reachable sibling nodes
[NOTICE] switchover was successful
[DETAIL] node "node2" is now primary and node "node1" is attached as standby
[INFO] unpausing repmgrd on node "node1" (ID 1)
[INFO] unpause node "node1" (ID 1) successfully
[INFO] unpausing repmgrd on node "node2" (ID 2)
[INFO] unpause node "node2" (ID 2) successfully
[INFO] unpausing repmgrd on node "node3" (ID 3)
[INFO] unpause node "node3" (ID 3) successfully
[NOTICE] STANDBY SWITCHOVER has completed successfully

一键检查功能

此功能提供集群中每个节点的全面检查,将提示节点每个检查项是否正常,并给出非正常检查项的原因说明。可将检查结果导出到指定位置生成检查报告。此功能需存在大于等于一个正常运行的主/备节点才可进行检查。

1. 打开一键检查功能: 鼠标右键选择集群,选择菜单中的一键检查功能,如下图所示。

将检查日志导出到指定路径

修改参数配置

展开需要修改的集群,在节点通用配置选择集群然后右键,修改参数配置,进入配置界面。如下图:

修改集群密码

选择需要修改的集群,右键弹框选择,修改集群密码:

参考链接:5. 集群部署(通用机) — KingbaseES产品手册

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/305942.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统下gitee使用git提交代码

Linux系统下gitee使用git提交代码 一、安装配置git1.1 在 Linux 中安装 git&#xff0c;并生成授信证书1.2 将SSH key 添加到 ssh-agent1.2 将SSH key 添加到你的gitee账户 二、gitee 的使用2.1 下载项目到本地 三、上传gitee三步走3.1 三板斧第一招&#xff1a;git add3.2 三板…

C++ 开发 + VSCode 调试

C 开发 VSCode 调试 MSYS2 安装 gcc、make下载安装MSMYS2pacman 添加镜像源 GCC1. 安装2. 查看结果3. 环境变量 GDB VSCode 调试所需插件创建项目调试代码1. tasks.json 配置任务2. launch.json 配置调试3. 运行 更进一步的 C/C 设置 参考资料 MSYS2 安装 gcc、make 下载 官…

Java网络爬虫--HttpClient

目录标题 技术介绍有什么优点&#xff1f;怎么在项目中引入&#xff1f; 请求URLEntityUtils 类GET请求带参数的GET请求POST请求 总结 技术介绍 HttpClient 是 Apache Jakarta Common 下的子项目&#xff0c;用来提供高效的、功能丰富的、支持 HTTP 协议的客户端编程工具包。相…

Pycharm中如何配置python环境(conda)

首先在pycharm中点击 "File" > "Settings" 再次点击如下操作&#xff1a; 点击Python Interpreter的最右侧按钮&#xff0c;点击Show All... 找到python文件 最后点击OK

ros gazebo机械臂仿真,手动控制与MoveIt自动控制

本文总结归纳古月居胡春旭ros机械臂教程&#xff0c;给出了一些error的解决方法&#xff0c;补充了通过python运行moveit。十分建议去看github huchunxu源代码的repository。 创建机械臂的xacro模型 首先创建一个工作空间&#xff0c;在工作空间中创建arm_description功能包。…

Qt应用-实现图像截取功能类似QQ上传头像截取功能

本文演示利用Qt实现图像截取功能类似QQ上传头像截取功能。 效果如下,通过移动中间的裁剪区域可以获得一张裁剪后的图片。 目录

MySQL进阶之(二)索引的数据结构

二、索引的数据结构 2.1 关于索引2.1.1 什么是索引&#xff1f;2.1.2 为什么使用索引&#xff1f;2.1.3 索引的优缺点01、优点02、缺点 2.1.4 一个简单的索引设计方案 2.2 InnoDB 中的索引设计2.2.1 迭代①&#xff1a;目录项记录的页2.2.2 迭代②&#xff1a;多个目录项记录的…

程序媛的mac修炼手册-- 终端(terminal)常用命令

「终端&#xff08;terminal&#xff09;」相当于macOS的一个 App &#xff0c;它的特殊之处是&#xff0c;它是管理其它App的App&#xff0c;操作主要通过命令行界面 (CLI) 。 相比于我们日常熟悉的用户界面&#xff08;User Interface&#xff0c;UI&#xff09;&#xff0c…

顺序栈之共享栈实现——C语言

参考书&#xff1a;数据结构教程 第5版 李葆春 P83 #include <stdio.h> #include <string.h> #include <stdlib.h>#define MaxSize 10/*共享栈*/ typedef struct {char data[MaxSize];int top1,top2,len; }DStack;/*初始化*/ void InitStack(DStack *s){s-…

HCIA-Datacom题库(自己整理分类的)_17_简单的命令判断【11道题】

1.华为AR路由器的命令行界面下&#xff0c;save命令的作用是保存当前的系统时间。 解析&#xff1a;Save保存配置 2.VRP界面下&#xff0c;使用命令delete vrpcfg.zp删除文件&#xff0c;必须在回收站中清空&#xff0c;才能彻底删除文件。√ 解析&#xff1a;delete删除到回…

Selenium 学习(0.19)——软件测试之基本路径测试法——拓展案例

1、案例 请使用基本路径法为变量year设计测试用例&#xff0c;year的取值范围是1000<year<2001。代码如下&#xff1a; 2、步骤 先画控制流程图 再转化为控制流图&#xff08;标出节点&#xff09; V(G) 总区域数 4 V(G) E - N 2 (边数 - 节点数 2…

AArch64 Exception Model学习

提示 该博客主要为个人学习&#xff0c;通过阅读官网手册整理而来&#xff08;个人觉得阅读官网的英文文档非常有助于理解各个IP特性&#xff09;。若有不对之处请参考参考文档&#xff0c;以官网文档为准。 1 Privilege and Exception Levels 1.1 为什么要划分权限&#xf…

5分钟使用Hologres实时湖仓加速分析挑战赛来袭

活动简介 5分钟快速使用Hologres实时湖仓能力&#xff0c;加速分析数据湖OSS上Hudi、Delta、Paimon、ORC等格式数据&#xff0c;赢取精美礼品 活动入口&#xff1a;Hologres实时湖仓分析挑战赛-阿里云开发者社区 或点击文末【阅读全文】参与挑战 活动时间 2024年1月4日-202…

爬取国家法律法规数据库法律条文

代码展现&#xff1a; import requests import os filename 法律条文\\ if not os.path.exists(filename):os.mkdir(filename) url https://flk.npc.gov.cn/api/? data {type: flfg,searchType: title;vague,sortTr: f_bbrq_s;desc,gbrqStart: ,gbrqEnd: ,sxrqStart: ,sx…

【C语言】TCP测速程序

一、服务端 下面是一个用 C 语言编写的测试 TCP 传输速度的基本程序示例。 这只是一个简单示例&#xff0c;没有做详细的错误检查和边缘情况处理。在实际应用中&#xff0c;可能需要增加更多的功能和完善的异常处理机制。 TCP 服务器 (server.c): #include <stdio.h> #…

【c++】vector模拟

> 作者简介&#xff1a;დ旧言~&#xff0c;目前大二&#xff0c;现在学习Java&#xff0c;c&#xff0c;c&#xff0c;Python等 > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;能手撕vector模拟 > 毒鸡汤&#xff1a;在等待…

动态规划(分割等和子集)

416. 分割等和子集 题目难易&#xff1a;中等 给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: 输入: [1, 5, 11, 5] 输出: true 解释: 数…

STM32入门教程-2023版【3-3】gpio输入

关注 星标公众号 不错过精彩内容 大家好&#xff0c;我是硬核王同学&#xff0c;最近在做免费的嵌入式知识分享&#xff0c;帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作! 上两小节我们已经把GPIO的结构和8种输入输出模式都讲完了&#xff0c;到这里还不懂的可以回…

浅析内存一致性:内存屏障

文章目录 概述内存乱序访问Store Buffer和Invalidate QueueStore BufferStore ForwardingStore Buffer与内存屏障 Invalidate QueueInvalidate Queue与内存屏障 内存屏障分类编译器屏障CPU内存屏障 相关参考 概述 内存屏障&#xff0c;是一类同步屏障指令&#xff0c;是CPU或编…

Java中的输入输出处理(一)

文件 文件&#xff1a;文件是放在一起的数据的集合。比如1.TXT。 存储地方&#xff1a;文件一般存储在硬盘&#xff0c;CD里比如D盘 如何访问文件属性&#xff1a;我们可以通过java.io.File类对其处理 File类 常用方法&#xff1a; 方法名称说明boolean exists()判断文件或目…