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

news2024/12/28 3:44:10

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产品手册

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python轴承故障诊断 (十)基于VMD+CNN-Transfromer的故障分类

目录 1 变分模态分解VMD的Python示例 2 轴承故障数据的预处理 2.1 导入数据 2.2 故障VMD分解可视化 3 基于VMDCNN-Transformer的轴承故障诊断分类 3.1 定义VMD-CNN-Transformer分类网络模型 3.2 设置参数&#xff0c;训练模型 3.3 模型评估 代码、数据如下&#xff1a…

大图切片预览

文章目录 前言处理流程完整代码前端预览 前言 最近有需求&#xff0c;前端要预览百兆以上的大图&#xff0c;这直接访问应该就不太行了&#xff0c;系统打开都在加载好一会儿&#xff0c;刚好从事的又是 gis 行业&#xff0c;于是打算用类似加载地图的方式来切片加载大图。这里…

【HarmonyOS】掌握 Stage 模型的核心概念与应用

从今天开始&#xff0c;博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”&#xff0c;对于刚接触这项技术的小伙伴在学习鸿蒙开发之前&#xff0c;有必要先了解一下鸿蒙&#xff0c;从你的角度来讲&#xff0c;你认为什么是鸿蒙呢&#xff1f;它出现的意义又是…

谷歌提出「边界注意力」模型,实现超越像素级检测精度!微弱边界也逃不过

有些情况下&#xff0c;当面临分辨率较低的图像时&#xff0c;可能会在进行诸如目标检测和图像分割等任务时遇到一些挑战和阻碍。这是因为低分辨率图像可能丢失了细节信息&#xff0c;使得计算机视觉系统难以准确捕捉和理解图像中的关键特征。在这种背景下&#xff0c;传统的方…

Poi实现根据word模板导出-图表篇

往期系列传送门&#xff1a; Poi实现根据word模板导出-文本段落篇 &#xff08;需要完整代码的直接看最后位置&#xff01;&#xff01;&#xff01;&#xff09; 前言&#xff1a; 补充Word中图表的知识&#xff1a; 每个图表在word中都有一个内置的Excel&#xff0c;用于…

kubernetes 容器监控 Sysdig Falco

开头语 写在前面&#xff1a;如有问题&#xff0c;以你为准&#xff0c; 目前24年应届生&#xff0c;各位大佬轻喷&#xff0c;部分资料与图片来自网络 内容较长&#xff0c;页面右上角目录方便跳转 Sysdig 监控容器系统调用 介绍 资料 Sysdig:一个非常强大的系统监控、分…

PostgreSQL的常见错误和解决方法

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 在学习新的东西时&#xff0c;会犯很多的错误&#xff0c;会遇到很多坑。我们在填坑与犯错中不断进步成长。 以下是在学习pgsql中…

【驱动序列】C#获取电脑硬件之CPU信息,以及它都有那些品牌

欢迎来到《小5讲堂》&#xff0c;大家好&#xff0c;我是全栈小5。 这是是《驱动序列》文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识…

【深度学习】SDXL tensorRT 推理,Stable Diffusion 转onnx,转TensorRT

文章目录 sdxl 转 diffusers转onnx转TensorRT sdxl 转 diffusers def convert_sdxl_to_diffusers(pretrained_ckpt_path, output_diffusers_path):import osos.environ["HF_ENDPOINT"] "https://hf-mirror.com" # 设置 HF 镜像源&#xff08;国内用户使…

k8s的集群调度:

k8s的集群调度&#xff1a; Scheduler:负责调度资源&#xff0c;把pod调度到node节点 预算策略 优先策略 list-watch k8s集群当中&#xff0c;通过list-watch的机制进行每个组件的协作&#xff0c;保持数据同步&#xff0c;每个组件之间的解耦 Kubectl配置文件&#xff0c…

1.9 day7 IO进程线程

使用消息队列完成两个进程间的通信 进程1 #include <myhead.h> struct migbuf {long a;//消息类型char b[1024];//消息正文 }; #define SIZE (sizeof(struct migbuf)-sizeof(long)) int main(int argc, const char *argv[]) {//创建key值key_t key0;if((keyftok(".…

从文本(.txt)文件中读取数据时出现中文乱码

前言 当需要从记事本中读取数据时&#xff0c;发现读取的数据会出现中文乱码&#xff0c;我尝试了C和C读取文件&#xff0c;发现都是这样。 乱码原因 文本文件的保存默认使用UTF-8编码方式&#xff0c;而VS编译器的编码方式是GBK&#xff0c;所以不同的编码方式导致了乱码。…

6.1.2捕捉图像(内含5D博客长截图,你们都去哪儿了?)

6.1.2捕捉图像 利用HyperSnap6可以很方便地捕捉全屏、虚拟桌面、窗口、控件、整页、按钮、活动窗口和区域。除此之外&#xff0c;它还可以进行自由捕捉和特殊捕捉。 1&#xff0e;捕捉窗口或控件 利用传统的“PrintScreen”或“AltPrintScreen”键只能捕捉整个屏幕或当前活动…

numpy100练习题,包含相应使用函数解释

取自github开源项目&#xff1a;numpy100题 文章目录 1. 导入numpy库并简写为 np (★☆☆)2. 打印numpy的版本和配置说明 (★☆☆)3. 创建一个长度为10的空向量 (★☆☆)4. 如何找到任何一个数组的内存大小&#xff1f; (★☆☆)5. 如何从命令行得到numpy中add函数的说明文档?…

【Python学习】Python学习10-列表

目录 【Python学习】Python学习10-列表 前言创建语法访问列表中的值更新和删除列表元素操作列表列表截取Python列表函数&方法参考 文章所属专区 Python学习 前言 本章节主要说明Python的列表List。 创建语法 创建一个列表 通过方括号和逗号分割创建&#xff0c;列表数据…

springboot学生成绩管理系统源码和论文

随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&#xf…

书生大模型全链路开源体系

书生浦语大模型全链路开源体系开源了哪些东西 数据书生万卷&#xff1a;一个2TB的涵盖多种模态与任务的数据集预训练InternLM-Train&#xff1a;微调XTuner&#xff1a;可供你低成本微调模型的工具箱部署LMDeploy&#xff1a;一个服务端场景下、transformer 结构 LLM 部署工具…

使用开源通义千问模型(Qwen)搭建自己的大模型服务

目标 1、使用开源的大模型服务搭建属于自己的模型服务&#xff1b; 2、调优自己的大模型&#xff1b; 选型 采用通义千问模型&#xff0c;https://github.com/QwenLM/Qwen 步骤 1、下载模型文件 开源模型库&#xff1a;https://www.modelscope.cn/models mkdir -p /data/…

Camunda ServiceTask

一&#xff1a;Java class Java class实现JavaDelegate接口&#xff0c;只需要配置类的全限定名即可&#xff0c;不需要被Spring容器管理。 public class JavaClassServiceTask implements JavaDelegate {Overridepublic void execute(DelegateExecution execution) throws …

k8s的集群调度---下

前情回顾 预算策略&#xff1a;过滤出合适的节点 优选策略&#xff1a;选择部署的节点 nodeName&#xff1a;硬匹配&#xff0c;不走调度策略。node01. nodeSelector&#xff1a;根据节点的标签选择&#xff0c;会走调度算法。 只要是走调度算法&#xff0c;在不满足预算策…