本文宗旨
近期学习并认证了Kingbase的KCA、KCP后,一直想着整理一份完整的部署手册,今日终于成型。本文主要适合初学者参考,交流学习,大佬们看到,如有问题请及时联系交流,鄙人不胜感激。
引言:
本文使用sys_securecmdd工具部署Kingbase V9集群。 sys_securecmdd是集群中自带的工具,集群监控、管理集群时通过sys_securecmdd安全执行命令。 Kingbase V9集群部署包含以下工具(如下图):

sys_securecmdd主要包含以下文件:
| 类型 | 文件名 | 作用 |
|---|---|---|
| sys_securecmdd | 默认监听8890端口,接受客户端连接。 | |
| 服务端 | sys_secureftp | 服务端调用,用于接收文件。 |
| sys_HAscmdd.sh | 脚本,管理服务端。 | |
| 客户端 | sys_securecmd | 客户端,用于连接服务端。 |
| 密钥文件 | accept_hosts | 免密文件 |
| accept_hosts | 私钥文件 | |
| _config | 服务端配置文件 | |
| 其他文件 | securecmd_config | 客户端配置文件 |
| sys_HAscmdd.conf | 脚本配置文件 | |
| securecmdd.service | 服务模板文件,服务端可以使用此文件 注册为服务。 | |
| 依赖库文件 | libcrypto.so.10 | 依赖openssl编译,为了不同环境能够 使用,需要带上编译使用的库文件。 |
sys_HAscmdd.conf是用于配置sys_securecmd的文件,其中参数说明如下:
| 参数名称 | 描述 | 约束 |
|---|---|---|
| start_method | 启动sys_securecmd进程并保证进程 高可用的方式。systemd,通用机集群 默认值,通过service服务启动 sys_securecmdd;crontab,专用机 集群默认值,通过crond服务定时启动 sys_securecmdd。 crontab, systemd 默认为crontab。 | crontab, systemd 默认为crontab。 |
| scmd_port | 进程sys_securecmd的监听端口,修 改后,需要使用 sys_HAscmdd.sh脚 本初始化。 | INT,默认8890。本初始化。 |
使用方法(需要root权限执行):
- 初始化,主要初始化sys_securecmd/sys_securecmd需要的配置文件和秘钥协商。
- 将securecmd_config/securecmd_config修改后拷贝到/etc/.kes目录下。
- 将accept_hosts/key_file拷贝到/root/.es 和 当前用户 ~/.es 目录下。
- sys_HAscmdd.sh init #启动sys_securecmd进程和进程高可用能力
- start_method=systemd将securecmd.service服务文件拷贝到/etc/systemd/system目录下,并启动sys_securecmdd服务
- start_method=crontab 在/etc/cron.d/KINGBASECRON中设置sys_securecmd的定时任务 sys_HAscmdd.sh start #查看sys_securecmd进程状态 sys_HAscmdd.sh status
- 关闭sys_securecmd进程和进程高可用能力 sys_HAscmdd.sh stop
- 卸载sys_securecmd的配置文件和服务 sys_HAscmdd.sh uninstall
1、部署环境要求
1.1、部署要求
| 类别 | 名称 | 备注 |
|---|---|---|
| 操作系统 | Windows Server、CentOS、中标麒麟、银河麒麟、统信UOS、Deepin、凝思、中科方德等操作系统 支持各种主流的Linux操作系统64位发行版本。 | 支持各种主流的Linux操作系统64位发行版本。 |
| CPU | x86、龙芯、飞腾、鲲鹏 | |
| 内存 | 512MB以上 | |
| 磁盘 | 10GB及以上的空闲空间 |
1.2、环境规划:
本项目采用1个主节点,2个备用节点,1个见证节点的方案部署,详细分分配如下表:
| 序号 | IP地址 | 名称 | 类型 | 操作系统 |
|---|---|---|---|---|
| 1 | 192.168.4.141 | Node1 | primary | Kylin Linux Advanced Server V10 |
| 2 | 192.168.4.142 | Node2 | standby | Kylin Linux Advanced Server V10 |
| 3 | 192.168.4.143 | Node3 | standby | Kylin Linux Advanced Server V10 |
| 4 | 192.168.4.144 | Node4 | witness | Kylin Linux Advanced Server V10 |
| 5 | 192.168.4.145 | vip | vip | / |
| 6 | 192.168.4.1 | 网关 | / | / |
1.3、环境检查:
操作系统:
[root@Node1 ~]# hostnamectl Static hostname: Node1 Icon name: computer-vm Chassis: vm Machine ID: af4025f55ac94f8c9eaca4bc977b9d78 Boot ID: a31e583f7e204174bad626639b2b6bff Virtualization: vmware Operating System: Kylin Linux Advanced Server V10 (Sword) Kernel: Linux 4.19.90-24.4.v2101.ky10.x86_64 Architecture: x86-64
CPU:
[root@Node1 ~]# lscpu 架构: x86_64 CPU 运行模式: 32-bit, 64-bit 字节序: Little Endian Address sizes: 45 bits physical, 48 bits virtual CPU: 2 在线 CPU 列表: 0,1 每个核的线程数: 1 每个座的核数: 1 座: 2 NUMA 节点: 1 厂商 ID: GenuineIntel CPU 系列: 6 型号: 154 型号名称: 12th Gen Intel(R) Core(TM) i7-12650H 步进: 3 CPU MHz: 2688.003 BogoMIPS: 5376.00 超管理器厂商: VMware 虚拟化类型: 完全
磁盘空间:
[root@Node1 ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 637M 0 637M 0% /dev tmpfs 662M 0 662M 0% /dev/shm tmpfs 662M 8.9M 653M 2% /run tmpfs 662M 0 662M 0% /sys/fs/cgroup /dev/sda2 76G 8.6G 68G 12% / tmpfs 662M 0 662M 0% /tmp tmpfs 133M 0 133M 0% /run/user/0
2、部署环境规划
2.1、创建用户
创建KingBase用户
[root@Node1 /]# groupadd kingbase -g 400 [root@Node1 /]# useradd kingbase -g 400 -u 400 [root@Node1 /]# echo "Kbing@123"|passwd --stdin kingbase 更改用户 kingbase 的密码 。 passwd:所有的身份验证令牌已经成功更新。 [root@Node1 /]#
2.2、创建目录
说明:创建安装目录,并设置权限、属主
目录规划表:
| 目录编号 | 目录名称 | 备注 |
|---|---|---|
| 1 | /Kingbase | Kingbas根目录 |
| 2 | /Kingbase/ES/V9 | Kingbas根目录 |
| 4 | /Kingbase/ES/V9/data | 主节点数据目录 |
| 6 | /Kingbase/ES/V9/archive | WAL归档 目录 |
| 7 | /Kingbase/ES/V9/backup | 备份目录 |
| 8 | /install | 安装包上传目录 |
创建Node1的部署目录
[root@Node1 ~]# [root@Node1 ~]# mkdir -p /Kingbase/ES/V9[root@Node1 ~]# mkdir -p /Kingbase/ES/V9/data[root@Node1 ~]# mkdir -p /Kingbase/ES/V9/backup[root@Node1 ~]# mkdir -p /Kingbase/ES/V9/archive /install [root@Node1 ~]# chown -R kingbase:kingbase /Kingbase /install [root@Node1 ~]# chmod -R 775 /Kingbase /install [root@Node1 ~]# chmod -R 700 /Kingbase/ES/V9/data [root@Node1 ~]# ls -l / | grep kingbase drwxrwxr-x 2 kingbase kingbase 6 5月 29 09:29 install drwxrwxr-x 3 kingbase kingbase 16 5月 29 09:29 Kingbase [root@Node1 ~]#
注意:并授权Kingbase账号,data目录为700,其他目录问775,如果data目录未设置权限700,则安装会出错;
3、部署环境初始化
3.1、上传安装文件
上传文件包含:
- 安装包:KingbaseES_V009R001C001B0025_Lin64_install.iso
- 激活文件:license_34148_0.dat
- Linux优化脚本:optimize_system_conf.sh
[root@Node1 install]# ls KingbaseES_V009R001C001B0025_Lin64_install.iso license_34148_0.dat optimize_system_conf.sh [root@Node1 install]#
3.2、内核参数优化
推荐使用官方提供的推荐优化参数文件,可根据需求进行调整。 系统优化参数文件主要优化以下项目:
- 1、调整内核参数
- 2、优化用户limits.conf文件
- 3、优化nproc.conf文件
- 4、优化sshd_config
- 5、关闭SELINUX
- 6、创建用户kingbase
- 7、配置sudo
- 8、关闭防火墙
[root@Node1 ~]# sh /install/optimize_system_conf.sh This tool help use to make a base optimization for system 1.optimize system core configuration: system configuration is already optimized, so we do nothing 2.optimize limit: limit is already optimized, so we do nothing 3.check limit: open files (-n) 65536 4.optimize ssh: optimize sshd_config configuration sshd is update 5.optimize selinux: 6.create kingbase 7.optimize sudo: optimize sudo configuration 8.open firewall firewall is close
3.3、同步服务器时间
说明:需安装ntp服务才能开启时间同步 安装方式:yum install ntp
主节点执行(192.168.4.141)
sed -i '12arestrict 192.168.4.141 nomodify notrap nopeer noquery' /etc/ntp.conf sed -i '22,25s/^/# /' /etc/ntp.conf sed -i '25aserver 127.127.1.0' /etc/ntp.conf sed -i '26aFudge 127.127.1.0 stratum 10' /etc/ntp.conf service ntpd start chkconfig ntpd on systemctl enable ntpd.service systemctl start ntpd.service
Node2节点(192.168.4.142)
sed -i '12arestrict 192.168.4.142 nomodify notrap nopeer noquery' /etc/ntp.conf sed -i '22,25s/^/# /' /etc/ntp.conf sed -i '25aserver 192.168.4.141' /etc/ntp.conf sed -i '26aFudge 192.168.4.141 stratum 10' /etc/ntp.conf service ntpd start chkconfig ntpd on systemctl enable ntpd.service systemctl start ntpd.service
Node3节点(192.168.4.143)
cp /etc/ntp.conf /etc/ntp.conf.bak sed -i '12arestrict 192.168.4.143 nomodify notrap nopeer noquery' /etc/ntp.conf sed -i '22,25s/^/# /' /etc/ntp.conf sed -i '25aserver 192.168.4.141' /etc/ntp.conf sed -i '26aFudge 192.168.4.141 stratum 10' /etc/ntp.conf service ntpd start chkconfig ntpd on systemctl enable ntpd.service systemctl start ntpd.service
Node4节点(192.168.4.144)
cp /etc/ntp.conf /etc/ntp.conf.bak sed -i '12arestrict 192.168.4.144 nomodify notrap nopeer noquery' /etc/ntp.conf sed -i '22,25s/^/# /' /etc/ntp.conf sed -i '25aserver 192.168.4.141' /etc/ntp.conf sed -i '26aFudge 192.168.4.141 stratum 10' /etc/ntp.conf service ntpd start chkconfig ntpd on systemctl enable ntpd.service systemctl start ntpd.service
4、单机部署操作流程
4.1、主机Node1部署,检查MD5校验码,官网做校验
[root@Node1 install]# ls -l KingbaseES_V009R001C001B0025_Lin64_install.iso -rw-r--r-- 1 kingbase kingbase 2299289600 5月 29 13:23 KingbaseES_V009R001C001B0025_Lin64_install.iso [root@Node1 install]# [root@Node1 install]# md5sum KingbaseES_V009R001C001B0025_Lin64_install.iso df45575dfb4cea1e2ad4a8f2905118d8 KingbaseES_V009R001C001B0025_Lin64_install.iso [root@Node1 install]#
检查本地安装包的MD5校验码,与官网提供的MD5值(如下图)校验做对比,两者一致,即可挂载镜像文件
4.2、挂载镜像
挂载镜像文件,需要使用root账户挂载Kingbase安装文件。
[root@Node1 install]# mount -o loop KingbaseES_V009R001C001B0025_Lin64_install.iso /mnt mount: /mnt: WARNING: source write-protected, mounted read-only. [root@Node1 install]# [root@Node1 install]# ls -l /mnt 总用量 6 dr-xr-xr-x 2 root root 2048 10月 30 2023 setup -r-xr-xr-x 1 root root 3933 10月 30 2023 setup.sh [root@Node1 install]#
4.3、使用KingBase用户复制挂载后的安装文件到/install下
由于普通用户可能存在权限问题,而无法访问/mnt目录,所以需要创建安装包存放目录KES_Setup,将mnt下的文件拷贝到KES_Setup。
[root@Node1 install]# mkdir /install/KES_Setup [root@Node1 install]# cp -r /mnt/* /install/KES_Setup [root@Node1 install]# ll -l /install/KES_Setup 总用量 4 dr-xr-xr-x 2 root root 54 5月 28 10:29 setup -r-xr-xr-x 1 root root 3933 5月 28 10:29 setup.sh [root@Node1 install]#
4.4、切换Kingbase账号,进行安装
[root@Node1 install]# su kingbase [kingbase@Node1 install]$ cd /install/KES_Setup [kingbase@Node1 KES_Setup]$
4.5、执行Kingbase程序安装
[kingbase@Node1 KES_INSTALL]$ [kingbase@Node1 KES_INSTALL]$ bash setup.sh -i console
4.6、根据提示同意安装许可
Now launch installer... Preparing to install WARNING: /tmp does not have enough disk space! Attempting to use /home/kingbase for install base and tmp dir. Extracting the JRE from the installer archive... Unpacking the JRE... Extracting the installation resources from the installer archive... Configuring the installer for this system's environment... ........ Launching installer... =============================================================================== KingbaseES V9 (使用 InstallAnywhere 创建) ------------------------------------------------------------------------------- 正在准备控制台模式安装... =============================================================================== 简介 本安装程序将指导您完成 KingbaseES V9 的安装。 建议您在继续本次安装前,退出所有程序。 如果要回到前一屏幕进行更改,可输入“back”。 如果要取消本次安装,可随时输入“quit”。 KingbaseES Version: V9 Kingbase Type:BMJ-NO Installer Version: V009R001C001B0025 Install DATE:202405281033 Kingbase Inc. http://www.kingbase.com.cn 请按 <ENTER> 键继续: 按ENTER下一步 ============================================================
4.7、执根据提示同意安装许可
重要须知,请认真阅读:本《最终用户许可协议》(以下 称《协议》)是您(个人或单一实体)与北京人大金仓信息 技术股份有限公司(以下简称“人大金仓”)之间有关上述 人大金仓软件产品的法律协议。 本“软件产品”包括计算机软件,并可能包括相关媒体、 印刷材料和联机文档(“软件产品”)。本“软件产品”还 包括对人大金仓提供给您的原“软件产品”的任何更新和补 充资料。任何与本“软件产品”一同提供给您的并与单独一 份软件许可证相关的软件产品是根据本《协议》中的条款而 授予您。您一旦安装、复制、下载、 访问或以其它方式使用“软件产品”, 即表示您同意接受本《协议》各项条款的约束。 如您不同意本《协议》中的条款,请不要安装、 复制或使用“软件产品”。 软件产品许可证 本“软件产品”受著作权法及国际著作权条约和其它知识 产权法和条约的保护。 请按 <ENTER> 键继续: 按ENTER下一步
4.8、根据提示同意安装许可
1、许可证的授予。只要您遵守本《协议》, 人大金仓将授予您下列非独占性的不可转让的权利: 应用软件。 本软件的使用应在相应合同上规定的地点上使用。使用应受 到购买的数量和许可种类(如合同中所约定)的使用限制所 制约。如果许可种类没有特殊说明, 则您只能在单一一台计算机、工作站、手持式计算机、 智能电话或其他数字电子仪器(“计算机”)上安装、使用、 访问、显示、运行或以其他方式互相作用于(“运行”)本 “软件产品”的一份副本 保留权利。除本协议中具体的规定外, 未明示授予的一切其它权利均为人大金仓所有。 人大金仓保留对本协议内容的解释权。 2、其它权利和限制的说明。 限制转让。在任何情况下, 没有人大金仓的事先书面同意, 您不得转让本协议或本协议项下授予的任何使用许可。 请按 <ENTER> 键继续: 按ENTER下一步
4.9、根据提示同意安装许可
对反向工程、反向编译、反汇编的限制。 您不得对本“软件产品”进行反向工程、 反向编译或反汇编;尽管有此限制, 但如果适用法律明示允许上述活动, 并仅在适用法律明示允许的范围内从事上述活动, 则不在此限。 商标。本《协议》不授予您任何有关人大金仓商标或服务 商标的权利。 出租限制。不得出租、租赁或出借本“软件产品”。 出口限制。您承认本“软件产品”受中国出口法律管辖。 您同意遵守所有适用于本“软件产品”的国际法和国内法, 包括《中华人民共和国对外贸易法》, 请按 <ENTER> 键继续: 按ENTER下一步
4.10、根据提示同意安装许可
支持服务。人大金仓为您提供与“软件产品”有关的支持 服务(“支持服务”), 但支持服务的具体内容受相关合同的制约, 人大金仓保留对支持服务进行收费的权利。 支持服务的使用受用户手册、联机文档和/或其它人大金仓提 供的材料中所述的各项政策和计划的制约。提供给您作为支 持服务的一部份的任何附加软件代码应被视为本“软件产品 ”的一部分,并须符合本《协议》中的各项条款和条件。 至于您提供给人大金仓作为支持服务的一部分的技术信息, 人大金仓可将其用于商业用途,包括产品支持和开发。 除了在为您提供支持时必须的情况外, 人大金仓在使用这些技术信息时不会以个人形式提及您。 协议终止。如您未遵守本《协议》的各项条款和条件, 在不损害其它权利的情况下,人大金仓可终止本《协议》。 如此类情况发生, 您必须销毁“软件产品”的所有副本及其所有组成部分。 3、升级版本。如本“软件产品”标明为升级版本,您必须获 取由人大金仓标明为合格使用升级版本的产品的许可证方可 请按 <ENTER> 键继续: 按ENTER下一步
4.11、根据提示同意安装许可
4、知识产权。本“软件产品”(包括但不限于本“软件产品 ”中所含的任何图像、照片、动画、录像、录音、音乐、 文字和附加程序)、随附的印刷材料、 及本“软件产品”的任何副本的产权、 著作权和其他知识产权,均由人大金仓或其供应商拥有。通 过使用“软件产品”可访问的内容的一切所有权和知识产权 均属于各自内容所有者拥有, 并可能受著作权法或其它知识产权法和条约的保护。 本《协议》不授予您使用这些内容的权利。 如果这份“软件产品”包括只以电子形式提供的文档, 您可以打印一份该电子文档。 您不可以从本软件中去掉版权声明,并保证为本“软件产品 请按 <ENTER> 键继续: 按ENTER下一步
4.12、根据提示同意安装许可
6、备份副本。 在按照本《协议》安装一份本“软件产品”副本后, 您可以保留人大金仓用以提供给您本“软件产品”的原媒体, 仅用于备份或存档之用。 如果需要原媒体方可在计算机上使用“软件产品”, 您可以复制一份“软件产品”副本仅用于备份或存档之用。 除本《协议》中明文规定外,您不可复制本“软件产品”或 随附本“软件产品”的印刷材料。 经允许的复制件应以安全的方式予以保存。 请按 <ENTER> 键继续: 按ENTER下一步
4.13、根据提示同意安装许可
1、有限保证 只要您有有效的许可,人大金仓保证:(1)“软件产品” 自收货之日起九十天内基本符合随附书面材料所述的功能。 (2)人大金仓提供的支持服务应基本与有关书面材料中所述 相符,并且人大金仓支持工程师将在商业所允许的范围内尽 力解决任何问题。如果本产品不符合本保证, 人大金仓将修理、更换本产品或退回您已支付的价款,但您 应将该“软件产品”连同您所持有的发票一同退还给人大金 仓。如果本产品的故障是由事故、滥用或误用所造成, 则本保证无效。退换的产品享受原保证期剩余时间, 或三十天的保证(以时间较长者为准)。 在适用法律允许的最大范围内,并且除上述保证外, 请按 <ENTER> 键继续: 按ENTER下一步
4.14、根据提示同意安装许可
管辖法律 本协议受中华人民共和国法律管辖(包括但不限于《中华 人民共和国著作权法》、 请按 <ENTER> 键继续:按ENTER下一步 ## 4.15、根据提示同意安装许可 ```diff-js 人大金仓的联系方式如下: 地址:北京市朝阳区容达路7号中国电科太极信息产业园B座三 层 邮编:100102 电话:86-10-5885 1118 网址:www.kingbase.com.cn 全国服务热线:400-601-1188 技术支持邮箱:support@kingbase.com.cn 是否接受此许可协议条款? (Y/N): 按Y下一步
4.16、选择安装方式,默认选择1:完全安装
选择安装集 ----- 请选择将由本安装程序安装的“安装集”。 ->1- 完全安装 2- 客户端安装 3- 定制安装 输入“安装集”的号码,或按 <ENTER> 键以接受缺省值 : 按1下一步
4.17、选择授权文件(包含授权文件所在路径)
说明: 选择授权文件,授权文件需要在官网下载测试版,使用时效:3个月,商业版需联系人大金仓商务人员, 授权文件所在位置:/install/license_34148_0.dat
选择授权文件 ------ 文件路径: /install/license_34148_0.dat
4.18、选择安装目录,按Y继续安装
说明: Kingbase安装在/Kingbase/ES/V9
选择安装目录 ------ 请选择一个安装目录。 您想在哪一位置安装? 缺省安装文件夹: /opt/Kingbase/ES/V9 输入一个绝对路径,或按 <ENTER> 键以接受缺省路径 : /Kingbase/ES/V9 按ENTER下一步 安装文件夹为: /Kingbase/ES/V9 是否正确? (Y/N): 按Y下一步
4.19、再次确认安装目录,当前目录已存在,按“1”覆盖安装即可
确定:覆盖非空目录 --------- 选择的目录已经有内容,确定是否覆盖? ->1- 确定 2- 取消 输入要选择的号码,或按 <ENTER> 键接受缺省值:选1,再按ENTER下一步
4.20、确认安装目录,按ENTER继续安装
预安装摘要 ----- 在继续执行前请检查以下信息: 产品名: KingbaseES V9 安装文件夹: /Kingbase/ES/V9 再次确认安装路径,按ENTER下一步
4.21、确认以上安装信息,按ENTER继续安装
产品功能部件: 数据库服务器, 接口, 数据库部署工具, 高可用组件, 数据库开发管理工具, 数据迁移工具 安装空间磁盘信息 所需磁盘空间: 5378 MB 空闲磁盘空间: 64355 MB 请按 <ENTER> 键继续:按ENTER下一步
4.22、执行Kingbase程序安装
准备就绪,可以安装 --------- 本安装程序已准备完毕,可在下列位置安装 KingbaseES V9: /Kingbase/ES/V9 按 <ENTER> 键进行安装:按ENTER下一步
4.23、确认data安装路径,无需修改,按ENTER继续安装
选择存储数据的文件夹 ---------- 请选择一个文件夹,该文件夹必须为空。 Data folder (默认﹕ /Kingbase/ES/V9/data):确认data安装目录,无需修改,按ENTER下一步
4.24、确认安装端口,默认是54321,无需修改,按ENTER继续安装
数据库端口 ----- 请输入数据库服务监听端口,默认54321。 端口 (默认﹕ 54321): 端口默认是54321,无需修改,按ENTER下一步
4.25、确认管理员账号system,及设置system密码
数据库管理员 请输入数据库管理员用户名。 用户名: (默认﹕ system): 默认管理员账号system,无需修改,按ENTER下一步 =============================================================================== 输入密码 本次安装需输入密码才能继续。 请输入密码: 请输入密码:*********输入密码,按ENTER下一步 =================================================================== 再次输入密码 本次安装需再次输入密码才能继续。 请再次输入密码: 请再次输入密码:*********再次输入密码,按ENTER下一步
4.26、设置数据库服务字符集
数据库服务字符集 请输入服务端字符集编码。 ->1- UTF8 2- GBK 3- GB18030 输入您选择的号码,或按 <ENTER> 键以接受缺省值: 选择1,按ENTER下一步
4.27、设置数据库兼容模式
数据库兼容模式 请输入数据库兼容模式。 1- PG ->2- ORACLE 3- MySQL 输入您选择的号码,或按 <ENTER> 键以接受缺省值: 选择2,按ENTER下一步
4.28、设置字符大小写敏感特性
=============================================================================== 字符大小写敏感特性 --------- 请输入字符大小写敏感特性。 ->1- YES 2- NO 输入您选择的号码,或按 <ENTER> 键以接受缺省值: 选择1,按ENTER下一步
4.29、设置存储块大小
存储块大小 请输入存储块大小。 ->1- 8k 2- 16k 3- 32k 输入您选择的号码,或按 <ENTER> 键以接受缺省值: 选择1,按ENTER下一步
4.30、获取用户输入
输入请求信息 ->1- sm4 2- rc4 输入您选择的号码,或按 <ENTER> 键以接受缺省值: 选择1,按ENTER下一步
4.31、获取用户输入,设置加密方式:默认选1
获取用户输入 输入请求信息 ->1- scram-sha-256 2- scram-sm3 3- sm4 4- sm3 输入您选择的号码,或按 <ENTER> 键以接受缺省值: 选择1,按ENTER下一步 ================================================================
4.32、以上信息设置完毕后,按ENTER继续安装
数据库即将被安装,需要花费一些时间,请耐心等待。 请按 <ENTER> 键继续: 按ENTER下一步
4.33、安装完成,新建一个会话,执行以下脚本
安装完成 恭喜!KingbaseES V9 已成功地安装到: /Kingbase/ES/V9 如果您需要将 KingbaseES V9 注册为系统服务,请运行 /Kingbase/ES/V9/install/script/root.sh 按 <ENTER> 键以退出安装程序:
4.34、新开会话,执行脚本:
[root@Node1 ~]# /Kingbase/ES/V9/install/script/root.sh Starting KingbaseES V9: 等待服务器进程启动 .... 完成 服务器进程已经启动 KingbaseES V9 started successfully
4.35、执行脚本后,按ENTER,完成部署
安装完成 恭喜!KingbaseES V9 已成功地安装到: /Kingbase/ES/V9 如果您需要将 KingbaseES V9 注册为系统服务,请运行 /Kingbase/ES/V9/install/script/root.sh 按 <ENTER> 键以退出安装程序: Complete. [kingbase@Node1 KES_Setup]$
5、集群部署初始化
5.1、创建集群安装目录:
集群目录规划表:
| 目录编号 | 目录名称 | 备注 |
|---|---|---|
| 1 | /Kingbase/ES/V9/cluster | Kingbas集群根目录 |
| 2 | /Kingbase/ES/V9/cluster/data | 集群数据目录 |
| 3 | /install | 系统初始化工具上传目录,Node2、Node3、Node4需要创建 |
说明:创建安装目录,并设置权限、属主 Node1创建集群安装目录:
[root@Node1 ~]# mkdir -p /Kingbase/ES/V9/cluster/kingbase /Kingbase/ES/V9/cluster/data [root@Node1 ~]# chown -R kingbase:kingbase /Kingbase/ES/V9/cluster [root@Node1 ~]#
Node2创建集群安装目录:
[root@Node2 ~]# mkdir -p /Kingbase/ES/V9/cluster/kingbase /Kingbase/ES/V9/cluster/data [root@Node2 ~]# mkdir /install [root@Node2 ~]# chown -R kingbase:kingbase /Kingbase/ES/V9/cluster [root@Node2 ~]#
Node3创建集群安装目录:
[root@Node3 ~]# mkdir -p /Kingbase/ES/V9/cluster/kingbase /Kingbase/ES/V9/cluster/data [root@Node3 ~]# mkdir /install [root@Node3 ~]# chown -R kingbase:kingbase /Kingbase/ES/V9/cluster [root@Node3 ~]#
Node4创建集群安装目录:
[root@Node4 ~]# mkdir -p /Kingbase/ES/V9/cluster/kingbase /Kingbase/ES/V9/cluster/data [root@Node4 ~]# mkdir /install [root@Node4 ~]# chown -R kingbase:kingbase /Kingbase/ES/V9/cluster [root@Node4 ~]#
5.2、在Node1主机将集群文件拷贝到集群安装目录
说明:集群部署文件包含:db.zip、securecmdd.zip、install.conf、cluster_install.sh、license.dat
Node1操作:
cd /Kingbase/ES/V9/KESRealPro/V009R001C001B0025/ClientTools/guitools/DeployTools/zip/ [kingbase@Node1 zip]$ cp db.zip securecmdd.zip install.conf /Kingbase/ES/V9/cluster [kingbase@Node1 zip]$ [kingbase@Node1 zip]$ ls /Kingbase/ES/V9/cluster cluster_install.sh install.conf kingbase trust_cluster.sh license.dat [kingbase@Node1 zip]$ cd /Kingbase/ES/V9/KESRealPro/V009R001C001B0025/ [kingbase@Node1 bin]$ cp /Kingbase/ES/V9/KESRealPro/V009R001C001B0025/license.dat /Kingbase/ES/V9/cluster
5.3、解压集群安装包
说明:切换到集群安装目录: cd /Kingbase/ES/V9/cluster/kingbase
[kingbase@Node1 zip]$ cd /Kingbase/ES/V9/cluster/kingbase [kingbase@Node1 kingbase]$ [kingbase@Node1 kingbase]$ unzip db.zip Archive: db.zip [kingbase@Node1 kingbase]$ unzip securecmdd.zip Archive: securecmdd.zip
5.4、拷贝授权文件到bin安装目录
说明:切换到集群安装目录: cd /Kingbase/ES/V9/cluster/kingbase/bin
[kingbase@Node1 bin]$ cp /Kingbase/ES/V9/KESRealPro/V009R001C001B0025/license.dat /Kingbase/ES/V9/cluster/kingbase/bin
5.5、向各主机分发集群部署文件
说明:通过主机Node1向各主机:Standby(Node2、Node3)、witness(Node4)分发集群部署文件
[kingbase@Node1 bin]$ scp -r /Kingbase/ES/V9/cluster/kingbase/* kingbase@192.168.4.142:/Kingbase/ES/V9/cluster/kingbase [kingbase@Node1 bin]$ scp -r /Kingbase/ES/V9/cluster/kingbase/* kingbase@192.168.4.143:/Kingbase/ES/V9/cluster/kingbase [kingbase@Node1 bin]$ scp -r /Kingbase/ES/V9/cluster/kingbase/* kingbase@192.168.4.144:/Kingbase/ES/V9/cluster/kingbase scp -r /install/optimize_system_conf.sh 192.168.4.142:/install sh /install/optimize_system_conf.sh
5.6、复查各节点文件权限、属主
说明:data安装目录权限必须设置为0700,否则无法安装
Node1:
chown -R kingbase:kingbase /Kingbase chmod -R 775 /Kingbase chmod -R 700 /Kingbase/ES/V9/cluster/data >Node2: ```diff-js chown -R kingbase:kingbase /Kingbase chmod -R 775 /Kingbase chmod -R 700 /Kingbase/ES/V9/cluster/data >Node3: ```diff-js chown -R kingbase:kingbase /Kingbase chmod -R 775 /Kingbase chmod -R 700 /Kingbase/ES/V9/cluster/data >Node4: ```diff-js chown -R kingbase:kingbase /Kingbase chmod -R 775 /Kingbase chmod -R 700 /Kingbase/ES/V9/cluster/data
5.7、编辑集群部署配置文件
说明:
- 1、集群部署配置文件在/Kingbase/ES/V9/cluster/install.conf
- 2、以下信息是涉及修改部分,未修改部分未做说明,如需了解,请移步到官网了解。
- 3、官网连接: https://help.kingbase.com.cn/v8/highly/availability/cluster-use/cluster-use-4.html?highlight=on_bmj
编辑集群部署配置文件:vi /Kingbase/ES/V9/cluster/install.conf
第1部分:on_bmj可选值:0(通用服务器)、1(专用服务器)
# Required parameters ##################################################################### [install] ## whether it is BMJ, if so, on_bmj=1, if not on_bmj=0, defaults to on_bmj=0 on_bmj=0
第2部分:读写分离集群参数 部署读写分离集群时,为必须配置项 部署两地三中心时,为不可配置项。 配置读写分离集群所有节点host,以空格分隔, 默认第一个被设置为集群主机,可配置IPv4、IPv6或hostname, 但所有节点必须配置为相同的类型。
## the cluster node IP which needs to be deployed, is separated by spaces, for example: all_ip=(192.168.1.10 192.168.1.11) ## or all_ip=(host1 host2) ## means deployed cluster of DG ==> ha_running_mode='DG' all_ip=(192.168.4.141 192.168.4.142 192.168.4.143 192.168.4.144)
第3部分:仲裁节点ip,可选值,如不填写,表示不配置
## only set if need to setup witness node in cluster. The value is the IP of witness node, for example: witness_ip="192.168.1.12" ## or witness_ip="host" ## it must be NULL when ha_running_mode='TPTC' witness_ip="192.168.4.134"
第4部分:仲裁节点ip,可选值,如不填写,表示不配置
## the path of cluster to be deployed, for example: install_dir="/home/kingbase/tmp_kingbase" [if it is BMJ, you do not need to configure this parameter] ## the directory structure after deployment: ## ${install_dir}/kingbase/data the data directory ## ${install_dir}/kingbase/archive log archive directory ## ${install_dir}/kingbase/etc configuration file directory ## ${install_dir}/kingbase/bin、lib、share、log install file directory ## the last layer of directory could not add '/' install_dir="/Kingbase/ES/V9/cluster"
第5部分:必须配置,说明压缩包的路径,专用机不需要配置。
## the absolute path of zip package, for example: zip_package="/home/kingbase/db.zip" [if it is BMJ or deploy_by_sshd=0, you do not need to configure this parameter] ## zip、tar and tar.gz package can be supported. zip_package="/Kingbase/ES/V9/cluster/kingbase/db.zip"
第6部分:license_file文件名称,默认即可
## the name of license.dat [if it is BMJ or deploy_by_sshd=0, you do not need to configure this parameter] ## if there are multiple license files, please write down all of them. ## make sure that the write order of license.dat file is the same as that of all_ip, if the same license file can be used in different devices, you can just write once. ## since the license file must named with "license.dat", if you have more than one license files, please use different name to distinguish them. ## example: license_file=(license.dat) or license_file=(license.dat-1 license.dat-2) license_file=(license.dat)
第7部分:设置集群data目录
## the path of data directory, BMJ defaults to "/opt/Kingbase/ES/V8/data", the general machine defaults to "install_dir/kingbase/data" data_directory="/Kingbase/ES/V9/cluster/data"
第8部分:可选配置,部署集群所需的数据库虚拟IP,掩码长度默认为24, 需跟网卡net_device的实际掩码长度一致。简称VIP。 只能配置IPv4,当all_ip配置为IPv6或hostname时, 不能配置此参数。
## the vitural IP, for example: virtual_ip="192.168.28.188/24" virtual_ip="192.168.4.145/24"
第9部分:可选配置,若配置了[virtual_ip],则此参数必须配置,值为VIP 所在网卡的网卡名称,每个节点网卡名中间以空格分隔,且必须和 all_node_ip的顺序保持一致,如果所有设备的网卡相同, 则只需写一次。
## the net device, after configuring the vitural IP, net_device must been configured. ## please make sure that the writing order of net_device is the same as all_ip, if the net_device is the same, it should also be written together. ## do not need to consider net_device on witness node if configured witness_ip ## for example: net_device=(ens192 ens192) or net_device=(ens192 eth0) net_device=(ens33 ens33 ens33 ens33)
第10部分:可选配置,若配置了[virtual_ip],则此参数必须配置,即VIP 所在网卡的物理IP地址,每个节点的IP中间以空格分隔,且必须 和all_ip的顺序保持一致。 因为[virtual_ip]只能配置为IPv4,此参数也必须配置为IPv4。 net_device_ip可以是VIP所在网卡的物理ip地址列表中的任何一 个,默认为第一个,且不区分虚拟IP与物理IP。
## the net device ip, after configuring the vitural IP, net_device_ip must been configured. ## please make sure that the writing order of net_device_ip is the same as all_ip ## do not need to consider net_device_ip on witness node if configured witness_ip ## for example: net_device_ip=(10.10.11.128 10.10.11.129) net_device_ip=(192.168.4.141 192.168.4.142 192.168.4.143 192.168.4.144)
第11部分:ipaddr_path:可选配置,ip命令路径,默认为“/sbin”。 arping_path:可选配置,arping命令路径,默认为"数据库安装目录的bin" 目录。 ping_path:可选配置,ping命令路径,默认为“/bin”。
## the path of ip, arping, ping command, defaults is /sbin or /bin ## by default, the arping_path is located in the bin directory of the database installation directory, if arping_path is null, then use default value. ## for example, if there is BMJ, arping_path=/opt/Kingbase/ES/V8/Server/bin ipaddr_path="/sbin" arping_path="/Kingbase/ES/V9/cluster/kingbase/bin" ping_path="/bin"
第12部分:可选配置,部署方式,通用机是否通过sshd服务部署集群。 在专用机上不能通过sshd服务部署(值为0),此处不用sshd部署,故改为0
## other cluster parameters deploy_by_sshd=0 # choose whether to use sshd when deploy, 0 means not to use (deploy by sys_securecmdd), 1 means to use (deploy by sshd), default value is 1; when on_bmj=1, it will auto set to no(deploy_by_sshd=0) use_scmd=1 # Is the cluster running on sys_securecmdd or sshd? 1 means yes (on sys_securecmdd), 0 means no (on sshd), default value is 1; when on_bmj=1, it will auto set to yes(use_scmd=1) reconnect_attempts="10" # the number of retries in the event of an error reconnect_interval="6" # retry interval recovery="standby" # the way of cluster recovery: standby/automatic/manual ssh_port="22" # the port of ssh, default is 22 scmd_port="8890" # the port of sys_securecmdd, default is 8890
5.8、所有节点安装并启动sys_HAscmdd服务
说明:安装sys_HAscmdd服务时,需要使用root账户
Node1:
[root@Node1 ~]# cd /Kingbase/ES/V9/cluster/kingbase/securecmdd/bin [root@Node1 bin]# ./sys_HAscmdd.sh init successfully initialized the sys_securecmdd, please use "./sys_HAscmdd.sh start" to start the sys_securecmdd [root@Node1 bin]# [root@Node1 bin]# ./sys_HAscmdd.sh start Created symlink /etc/systemd/system/multi-user.target.wants/securecmdd.service → /etc/systemd/system/securecmdd.service. [root@Node1 bin]#
Node2:
[root@Node2 ~]# cd /Kingbase/ES/V9/cluster/kingbase/securecmdd/bin [root@Node2 bin]# ./sys_HAscmdd.sh init successfully initialized the sys_securecmdd, please use "./sys_HAscmdd.sh start" to start the sys_securecmdd [root@Node2 bin]# [root@Node2 bin]# ./sys_HAscmdd.sh start Created symlink /etc/systemd/system/multi-user.target.wants/securecmdd.service → /etc/systemd/system/securecmdd.service. [root@Node2 bin]#
Node3:
[root@Node3 ~]# cd /Kingbase/ES/V9/cluster/kingbase/securecmdd/bin [root@Node3 bin]# ./sys_HAscmdd.sh init successfully initialized the sys_securecmdd, please use "./sys_HAscmdd.sh start" to start the sys_securecmdd [root@Node3 bin]# [root@Node3 bin]# ./sys_HAscmdd.sh start Created symlink /etc/systemd/system/multi-user.target.wants/securecmdd.service → /etc/systemd/system/securecmdd.service. [root@Node3 bin]#
Node4:
[root@Node4 ~]# cd /Kingbase/ES/V9/cluster/kingbase/securecmdd/bin [root@Node4 bin]# ./sys_HAscmdd.sh init successfully initialized the sys_securecmdd, please use "./sys_HAscmdd.sh start" to start the sys_securecmdd [root@Node4 bin]# [root@Node4 bin]# ./sys_HAscmdd.sh start Created symlink /etc/systemd/system/multi-user.target.wants/securecmdd.service → /etc/systemd/system/securecmdd.service. [root@Node4 bin]#
5.9、关闭主机Node1服务
说明:使用Noel主机,并切换到Kingbase账户,关闭Kingbase服务
[kingbase@Node1 kingbase]$ cd /Kingbase/ES/V9/KESRealPro/V009R001C001B0025/Server/bin/ ./sys_ctl -D /Kingbase/ES/V9/data stop
6、集群部署流程
6.1、在Node1执行集群部署
说明:使用Noel主机,并切换到Kingbase账户,执行cluster_install.sh集群部署
[kingbase@Node1 bin]$ [kingbase@Node1 bin]$ sh /Kingbase/ES/V9/cluster/cluster_install.sh [CONFIG_CHECK] will deploy the cluster of DG [CONFIG_CHECK] check if the virtual ip "192.168.4.145" already exist ... [CONFIG_CHECK] there is no "192.168.4.145" on any host, OK [CONFIG_CHECK] the number of net_device matches the length of all_ip or the number of net_device is 1 ... OK [CONFIG_CHECK] all_ip with witness: 192.168.4.141 192.168.4.142 192.168.4.143 192.168.4.144 192.168.4.144 [RUNNING] check if the host can be reached ... [RUNNING] success connect to the target "192.168.4.141" ..... OK [RUNNING] success connect to the target "192.168.4.142" ..... OK [RUNNING] success connect to the target "192.168.4.143" ..... OK [RUNNING] success connect to the target "192.168.4.144" ..... OK [RUNNING] success connect to the target "192.168.4.144" ..... OK [RUNNING] check the [net_device_ip] on dev [net_device] ... [RUNNING] 192.168.4.141 on host "192.168.4.141" on dev "ens33" ..... OK [RUNNING] 192.168.4.142 on host "192.168.4.142" on dev "ens33" ..... OK [RUNNING] 192.168.4.143 on host "192.168.4.143" on dev "ens33" ..... OK [RUNNING] 192.168.4.144 on host "192.168.4.144" on dev "ens33" ..... OK [RUNNING] check the db is running or not... [RUNNING] the db is not running on "192.168.4.141:54321" ..... OK [RUNNING] the db is not running on "192.168.4.142:54321" ..... OK [RUNNING] the db is not running on "192.168.4.143:54321" ..... OK [RUNNING] the db is not running on "192.168.4.144:54321" ..... OK [RUNNING] the db is not running on "192.168.4.144:54321" ..... OK [RUNNING] check the ~/.es for kingbase ... [RUNNING] the /home/kingbase/.es is already exists on "192.168.4.141" ..... OK [RUNNING] the /home/kingbase/.es is already exists on "192.168.4.142" ..... OK [RUNNING] the /home/kingbase/.es is already exists on "192.168.4.143" ..... OK [RUNNING] the /home/kingbase/.es is already exists on "192.168.4.144" ..... OK [RUNNING] the /home/kingbase/.es is already exists on "192.168.4.144" ..... OK [RUNNING] check if the install dir is already exist ... [RUNNING] when deploy_by_sshd=0, the install dir "/Kingbase/ES/V9/cluster/kingbase" on "192.168.4.141" is right .... OK [RUNNING] when deploy_by_sshd=0, the install dir "/Kingbase/ES/V9/cluster/kingbase" on "192.168.4.142" is right .... OK [RUNNING] when deploy_by_sshd=0, the install dir "/Kingbase/ES/V9/cluster/kingbase" on "192.168.4.143" is right .... OK [RUNNING] when deploy_by_sshd=0, the install dir "/Kingbase/ES/V9/cluster/kingbase" on "192.168.4.144" is right .... OK [RUNNING] when deploy_by_sshd=0, the install dir "/Kingbase/ES/V9/cluster/kingbase" on "192.168.4.144" is right .... OK 2024-05-28 23:32:47 [INFO] start to check system parameters on 192.168.4.141 ... 2024-05-28 23:32:48 [WARNING] [GSSAPIAuthentication] yes (should be: no) on 192.168.4.141 2024-05-28 23:32:48 [INFO] [UseDNS] is null on 192.168.4.141 2024-05-28 23:32:49 [INFO] [UsePAM] yes on 192.168.4.141 2024-05-28 23:32:49 [INFO] [ulimit.open files] 65536 on 192.168.4.141 2024-05-28 23:32:50 [INFO] [ulimit.open proc] 65536 on 192.168.4.141 2024-05-28 23:32:50 [INFO] [ulimit.core size] unlimited on 192.168.4.141 2024-05-28 23:32:51 [INFO] [ulimit.mem lock] 50000000 on 192.168.4.141 2024-05-28 23:32:53 [INFO] [kernel.sem] 5010 641280 5010 256 on 192.168.4.141 2024-05-28 23:32:54 [INFO] [RemoveIPC] no on 192.168.4.141 2024-05-28 23:32:54 [INFO] [DefaultTasksAccounting] is null on 192.168.4.141 2024-05-28 23:32:56 [INFO] [SELINUX] disabled on 192.168.4.141 2024-05-28 23:32:58 [INFO] [firewall] down on 192.168.4.141 2024-05-28 23:32:58 [WARNING] [The memory] 792076 kb (no less than 1G) on 192.168.4.141 2024-05-28 23:32:59 [INFO] [The hard disk] OK on 192.168.4.141 2024-05-28 23:32:59 [INFO] [ping command path] OK on 192.168.4.141 2024-05-28 23:33:00 [INFO] [/bin/cp --version] on 192.168.4.141 OK 2024-05-28 23:33:01 [INFO] [ip command path] on 192.168.4.141 OK 2024-05-28 23:33:04 [INFO] [Virtual IP] 192.168.4.145/24 OK 2024-05-28 23:33:04 [INFO] start to check system parameters on 192.168.4.142 ... 2024-05-28 23:33:04 [WARNING] [GSSAPIAuthentication] yes (should be: no) on 192.168.4.142 2024-05-28 23:33:05 [INFO] [UseDNS] is null on 192.168.4.142 2024-05-28 23:33:05 [INFO] [UsePAM] yes on 192.168.4.142 2024-05-28 23:33:06 [INFO] [ulimit.open files] 65536 on 192.168.4.142 2024-05-28 23:33:07 [INFO] [ulimit.open proc] 65536 on 192.168.4.142 2024-05-28 23:33:07 [INFO] [ulimit.core size] unlimited on 192.168.4.142 2024-05-28 23:33:08 [INFO] [ulimit.mem lock] 50000000 on 192.168.4.142 2024-05-28 23:33:10 [INFO] [kernel.sem] 5010 641280 5010 256 on 192.168.4.142 2024-05-28 23:33:11 [INFO] [RemoveIPC] no on 192.168.4.142 2024-05-28 23:33:11 [INFO] [DefaultTasksAccounting] is null on 192.168.4.142 2024-05-28 23:33:13 [INFO] [SELINUX] disabled on 192.168.4.142 2024-05-28 23:33:15 [INFO] [firewall] down on 192.168.4.142 2024-05-28 23:33:16 [WARNING] [The memory] 800976 kb (no less than 1G) on 192.168.4.142 2024-05-28 23:33:16 [INFO] [The hard disk] OK on 192.168.4.142 2024-05-28 23:33:17 [INFO] [ping command path] OK on 192.168.4.142 2024-05-28 23:33:17 [INFO] [/bin/cp --version] on 192.168.4.142 OK 2024-05-28 23:33:18 [INFO] [ip command path] on 192.168.4.142 OK 2024-05-28 23:33:21 [INFO] [Virtual IP] 192.168.4.145/24 OK 2024-05-28 23:33:21 [INFO] start to check system parameters on 192.168.4.143 ... 2024-05-28 23:33:22 [WARNING] [GSSAPIAuthentication] yes (should be: no) on 192.168.4.143 2024-05-28 23:33:22 [INFO] [UseDNS] is null on 192.168.4.143 2024-05-28 23:33:23 [INFO] [UsePAM] yes on 192.168.4.143 2024-05-28 23:33:24 [INFO] [ulimit.open files] 65536 on 192.168.4.143 2024-05-28 23:33:24 [INFO] [ulimit.open proc] 65536 on 192.168.4.143 2024-05-28 23:33:25 [INFO] [ulimit.core size] unlimited on 192.168.4.143 2024-05-28 23:33:25 [INFO] [ulimit.mem lock] 50000000 on 192.168.4.143 2024-05-28 23:33:28 [INFO] [kernel.sem] 5010 641280 5010 256 on 192.168.4.143 2024-05-28 23:33:28 [INFO] [RemoveIPC] no on 192.168.4.143 2024-05-28 23:33:29 [INFO] [DefaultTasksAccounting] is null on 192.168.4.143 2024-05-28 23:33:31 [INFO] [SELINUX] disabled on 192.168.4.143 2024-05-28 23:33:32 [INFO] [firewall] down on 192.168.4.143 2024-05-28 23:33:33 [WARNING] [The memory] 767464 kb (no less than 1G) on 192.168.4.143 2024-05-28 23:33:34 [INFO] [The hard disk] OK on 192.168.4.143 2024-05-28 23:33:34 [INFO] [ping command path] OK on 192.168.4.143 2024-05-28 23:33:35 [INFO] [/bin/cp --version] on 192.168.4.143 OK 2024-05-28 23:33:35 [INFO] [ip command path] on 192.168.4.143 OK 2024-05-28 23:33:38 [INFO] [Virtual IP] 192.168.4.145/24 OK 2024-05-28 23:33:38 [INFO] start to check system parameters on 192.168.4.144 ... 2024-05-28 23:33:39 [WARNING] [GSSAPIAuthentication] yes (should be: no) on 192.168.4.144 2024-05-28 23:33:40 [INFO] [UseDNS] is null on 192.168.4.144 2024-05-28 23:33:40 [INFO] [UsePAM] yes on 192.168.4.144 2024-05-28 23:33:41 [INFO] [ulimit.open files] 65536 on 192.168.4.144 2024-05-28 23:33:42 [INFO] [ulimit.open proc] 65536 on 192.168.4.144 2024-05-28 23:33:42 [INFO] [ulimit.core size] unlimited on 192.168.4.144 2024-05-28 23:33:43 [INFO] [ulimit.mem lock] 50000000 on 192.168.4.144 2024-05-28 23:33:45 [INFO] [kernel.sem] 5010 641280 5010 256 on 192.168.4.144 2024-05-28 23:33:46 [INFO] [RemoveIPC] no on 192.168.4.144 2024-05-28 23:33:46 [INFO] [DefaultTasksAccounting] is null on 192.168.4.144 2024-05-28 23:33:48 [INFO] [SELINUX] disabled on 192.168.4.144 2024-05-28 23:33:50 [INFO] [firewall] down on 192.168.4.144 2024-05-28 23:33:50 [WARNING] [The memory] 846484 kb (no less than 1G) on 192.168.4.144 2024-05-28 23:33:51 [INFO] [The hard disk] OK on 192.168.4.144 2024-05-28 23:33:52 [INFO] [ping command path] OK on 192.168.4.144 2024-05-28 23:33:52 [INFO] [/bin/cp --version] on 192.168.4.144 OK 2024-05-28 23:33:53 [INFO] [ip command path] on 192.168.4.144 OK 2024-05-28 23:33:56 [INFO] [Virtual IP] 192.168.4.145/24 OK 2024-05-28 23:33:56 [INFO] start to check system parameters on 192.168.4.144 ... 2024-05-28 23:33:56 [WARNING] [GSSAPIAuthentication] yes (should be: no) on 192.168.4.144 2024-05-28 23:33:57 [INFO] [UseDNS] is null on 192.168.4.144 2024-05-28 23:33:58 [INFO] [UsePAM] yes on 192.168.4.144 2024-05-28 23:33:58 [INFO] [ulimit.open files] 65536 on 192.168.4.144 2024-05-28 23:33:59 [INFO] [ulimit.open proc] 65536 on 192.168.4.144 2024-05-28 23:33:59 [INFO] [ulimit.core size] unlimited on 192.168.4.144 2024-05-28 23:34:00 [INFO] [ulimit.mem lock] 50000000 on 192.168.4.144 2024-05-28 23:34:02 [INFO] [kernel.sem] 5010 641280 5010 256 on 192.168.4.144 2024-05-28 23:34:03 [INFO] [RemoveIPC] no on 192.168.4.144 2024-05-28 23:34:04 [INFO] [DefaultTasksAccounting] is null on 192.168.4.144 2024-05-28 23:34:05 [INFO] [SELINUX] disabled on 192.168.4.144 2024-05-28 23:34:07 [INFO] [firewall] down on 192.168.4.144 2024-05-28 23:34:08 [WARNING] [The memory] 844704 kb (no less than 1G) on 192.168.4.144 2024-05-28 23:34:08 [INFO] [The hard disk] OK on 192.168.4.144 2024-05-28 23:34:09 [INFO] [ping command path] OK on 192.168.4.144 2024-05-28 23:34:09 [INFO] [/bin/cp --version] on 192.168.4.144 OK 2024-05-28 23:34:10 [INFO] [ip command path] on 192.168.4.144 OK 2024-05-28 23:34:13 [INFO] [Virtual IP] 192.168.4.145/24 OK [INSTALL] create the dir "/Kingbase/ES/V9/cluster/kingbase/etc" on all host [INSTALL] change the auth of bin directory on 192.168.4.141 ... [INSTALL] change the auth of bin directory on 192.168.4.142 ... [INSTALL] change the auth of bin directory on 192.168.4.143 ... [INSTALL] change the auth of bin directory on 192.168.4.144 ... [INSTALL] change the auth of bin directory on 192.168.4.144 ... [RUNNING] chmod u+s for "/sbin" and "/Kingbase/ES/V9/cluster/kingbase/bin" [RUNNING] chmod u+s /sbin/ip on "192.168.4.141" ..... OK [RUNNING] chmod u+s /Kingbase/ES/V9/cluster/kingbase/bin/arping on "192.168.4.141" ..... OK [RUNNING] chmod u+s /sbin/ip on "192.168.4.142" ..... OK [RUNNING] chmod u+s /Kingbase/ES/V9/cluster/kingbase/bin/arping on "192.168.4.142" ..... OK [RUNNING] chmod u+s /sbin/ip on "192.168.4.143" ..... OK [RUNNING] chmod u+s /Kingbase/ES/V9/cluster/kingbase/bin/arping on "192.168.4.143" ..... OK [RUNNING] chmod u+s /sbin/ip on "192.168.4.144" ..... OK [RUNNING] chmod u+s /Kingbase/ES/V9/cluster/kingbase/bin/arping on "192.168.4.144" ..... OK [RUNNING] chmod u+s /sbin/ip on "192.168.4.144" ..... OK [RUNNING] chmod u+s /Kingbase/ES/V9/cluster/kingbase/bin/arping on "192.168.4.144" ..... OK [INSTALL] check license_file "/Kingbase/ES/V9/cluster/kingbase/bin/license.dat" or "/Kingbase/ES/V9/cluster/kingbase/bin/../../license.dat" on 192.168.4.141 .... ok [INSTALL] check license_file "/Kingbase/ES/V9/cluster/kingbase/bin/license.dat" or "/Kingbase/ES/V9/cluster/kingbase/bin/../../license.dat" on 192.168.4.142 .... ok [INSTALL] check license_file "/Kingbase/ES/V9/cluster/kingbase/bin/license.dat" or "/Kingbase/ES/V9/cluster/kingbase/bin/../../license.dat" on 192.168.4.143 .... ok [INSTALL] check license_file "/Kingbase/ES/V9/cluster/kingbase/bin/license.dat" or "/Kingbase/ES/V9/cluster/kingbase/bin/../../license.dat" on 192.168.4.144 .... ok [INSTALL] check license_file "/Kingbase/ES/V9/cluster/kingbase/bin/license.dat" or "/Kingbase/ES/V9/cluster/kingbase/bin/../../license.dat" on 192.168.4.144 .... ok [RUNNING] check if the host can be reached between all nodes ... [RUNNING] success connect to "192.168.4.141" from current node by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.141" from "192.168.4.141" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.142" from "192.168.4.141" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.143" from "192.168.4.141" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.144" from "192.168.4.141" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.144" from "192.168.4.141" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.142" from current node by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.141" from "192.168.4.142" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.142" from "192.168.4.142" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.143" from "192.168.4.142" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.144" from "192.168.4.142" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.144" from "192.168.4.142" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.143" from current node by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.141" from "192.168.4.143" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.142" from "192.168.4.143" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.143" from "192.168.4.143" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.144" from "192.168.4.143" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.144" from "192.168.4.143" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.144" from current node by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.141" from "192.168.4.144" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.142" from "192.168.4.144" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.143" from "192.168.4.144" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.144" from "192.168.4.144" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.144" from "192.168.4.144" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.144" from current node by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.141" from "192.168.4.144" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.142" from "192.168.4.144" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.143" from "192.168.4.144" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.144" from "192.168.4.144" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [RUNNING] success connect to "192.168.4.144" from "192.168.4.144" by '/Kingbase/ES/V9/cluster/kingbase/bin/sys_securecmd' ..... OK [INSTALL] begin to init the database on "192.168.4.141" ... 属于此数据库系统的文件宿主为用户 "kingbase". 此用户也必须为服务器进程的宿主. 数据库簇将使用本地化语言 "zh_CN.UTF-8"进行初始化. 默认的数据库编码已经相应的设置为 "UTF8". 缺省的文本搜索配置将会被设置到"simple" 字符串的比较区分大小写. 允许生成数据页校验和. 修复已存在目录 /Kingbase/ES/V9/cluster/data 的权限 ... 成功 正在创建子目录 ... 成功 选择动态共享内存实现 ......posix 选择默认最大联接数 (max_connections) ... initdb: 找不到适合区域设置的文本搜索配置 "zh_CN.UTF-8" 100 选择默认共享缓冲区大小 (shared_buffers) ... 128MB 选择默认时区...Asia/Shanghai 创建配置文件 ... 成功 开始设置加密设备 正在初始化加密设备...成功 正在运行自举脚本 ...成功 正在执行自举后初始化 ...成功 创建安全数据库...成功 加载安全数据库...成功 同步数据到磁盘...成功 成功。您现在可以用下面的命令开启数据库服务器: /Kingbase/ES/V9/cluster/kingbase/bin/sys_ctl -D /Kingbase/ES/V9/cluster/data -l 日志文件 start [INSTALL] end to init the database on "192.168.4.141" ... OK [INSTALL] wirte the kingbase.conf on "192.168.4.141" ... [INSTALL] wirte the kingbase.conf on "192.168.4.141" ... OK [INSTALL] wirte the es_rep.conf on "192.168.4.141" ... [INSTALL] wirte the es_rep.conf on "192.168.4.141" ... OK [INSTALL] wirte the sys_hba.conf on "192.168.4.141" ... [INSTALL] wirte the sys_hba.conf on "192.168.4.141" ... OK [INSTALL] wirte the .encpwd on every host [INSTALL] write the repmgr.conf on every host [INSTALL] write the repmgr.conf on "192.168.4.141" ... [INSTALL] write the repmgr.conf on "192.168.4.141" ... OK [INSTALL] write the repmgr.conf on "192.168.4.142" ... [INSTALL] write the repmgr.conf on "192.168.4.142" ... OK [INSTALL] write the repmgr.conf on "192.168.4.143" ... [INSTALL] write the repmgr.conf on "192.168.4.143" ... OK [INSTALL] write the repmgr.conf on "192.168.4.144" ... [INSTALL] write the repmgr.conf on "192.168.4.144" ... OK [INSTALL] write the repmgr.conf on "192.168.4.144" ... [INSTALL] write the repmgr.conf on "192.168.4.144" ... OK [INSTALL] start up the database on "192.168.4.141" ... [INSTALL] /Kingbase/ES/V9/cluster/kingbase/bin/sys_ctl -w -t 60 -l /Kingbase/ES/V9/cluster/kingbase/logfile -D /Kingbase/ES/V9/cluster/data start 等待服务器进程启动 .... 完成 服务器进程已经启动 [INSTALL] start up the database on "192.168.4.141" ... OK [INSTALL] create the database "esrep" and user "esrep" for repmgr ... CREATE DATABASE CREATE ROLE GRANT GRANT ROLE [INSTALL] create the database "esrep" and user "esrep" for repmgr ... OK [INSTALL] register the primary on "192.168.4.141" ... [INFO] connecting to primary database... [NOTICE] attempting to install extension "repmgr" [NOTICE] "repmgr" extension successfully installed [NOTICE] PING 192.168.4.145 (192.168.4.145) 56(84) bytes of data. ----192.168.4.145 ping statistics ---- 2 packets transmitted, 0 received, 100% packet loss, time 1027ms [WARNING] ping host"192.168.4.145" failed [DETAIL] average RTT value is not greater than zero [INFO] loadvip result: 1, arping result: 1 [NOTICE] node (ID: 1) acquire the virtual ip 192.168.4.145/24 success [NOTICE] primary node record (ID: 1) registered [INSTALL] register the primary on "192.168.4.141" ... OK [INSTALL] clone and start up the standby ... clone the standby on "192.168.4.142" ... /Kingbase/ES/V9/cluster/kingbase/bin/repmgr -h 192.168.4.141 -U esrep -d esrep -p 54321 --fast-checkpoint --upstream-node-id 1 standby clone [NOTICE] destination directory "/Kingbase/ES/V9/cluster/data" provided [INFO] connecting to source node [DETAIL] connection string is: host=192.168.4.141 user=esrep port=54321 dbname=esrep [DETAIL] current installation size is 82 MB [NOTICE] checking for available walsenders on the source node (2 required) [NOTICE] checking replication connections can be made to the source server (2 required) [INFO] checking and correcting permissions on existing directory "/Kingbase/ES/V9/cluster/data" [INFO] creating replication slot as user "esrep" [NOTICE] starting backup (using sys_basebackup)... [INFO] executing: /Kingbase/ES/V9/cluster/kingbase/bin/sys_basebackup -l "repmgr base backup" -D /Kingbase/ES/V9/cluster/data -h 192.168.4.141 -p 54321 -U esrep -c fast -X stream -S repmgr_slot_2 [NOTICE] standby clone (using sys_basebackup) complete [NOTICE] you can now start your Kingbase server [HINT] for example: sys_ctl -D /Kingbase/ES/V9/cluster/data start [HINT] after starting the server, you need to register this standby with "repmgr standby register" clone the standby on "192.168.4.142" ... OK start up the standby on "192.168.4.142" ... /Kingbase/ES/V9/cluster/kingbase/bin/sys_ctl -w -t 60 -l /Kingbase/ES/V9/cluster/kingbase/logfile -D /Kingbase/ES/V9/cluster/data start 等待服务器进程启动 ..... 完成 服务器进程已经启动 start up the standby on "192.168.4.142" ... OK register the standby on "192.168.4.142" ... [INFO] connecting to local node "node2" (ID: 2) [INFO] connecting to primary database [INFO] standby registration complete [NOTICE] standby node "node2" (ID: 2) successfully registered [INSTALL] register the standby on "192.168.4.142" ... OK clone the standby on "192.168.4.143" ... /Kingbase/ES/V9/cluster/kingbase/bin/repmgr -h 192.168.4.141 -U esrep -d esrep -p 54321 --fast-checkpoint --upstream-node-id 1 standby clone [NOTICE] destination directory "/Kingbase/ES/V9/cluster/data" provided [INFO] connecting to source node [DETAIL] connection string is: host=192.168.4.141 user=esrep port=54321 dbname=esrep [DETAIL] current installation size is 82 MB [NOTICE] checking for available walsenders on the source node (2 required) [NOTICE] checking replication connections can be made to the source server (2 required) [INFO] checking and correcting permissions on existing directory "/Kingbase/ES/V9/cluster/data" [INFO] creating replication slot as user "esrep" [NOTICE] starting backup (using sys_basebackup)... [INFO] executing: /Kingbase/ES/V9/cluster/kingbase/bin/sys_basebackup -l "repmgr base backup" -D /Kingbase/ES/V9/cluster/data -h 192.168.4.141 -p 54321 -U esrep -c fast -X stream -S repmgr_slot_3 [NOTICE] standby clone (using sys_basebackup) complete [NOTICE] you can now start your Kingbase server [HINT] for example: sys_ctl -D /Kingbase/ES/V9/cluster/data start [HINT] after starting the server, you need to register this standby with "repmgr standby register" clone the standby on "192.168.4.143" ... OK start up the standby on "192.168.4.143" ... /Kingbase/ES/V9/cluster/kingbase/bin/sys_ctl -w -t 60 -l /Kingbase/ES/V9/cluster/kingbase/logfile -D /Kingbase/ES/V9/cluster/data start 等待服务器进程启动 ..... 完成 服务器进程已经启动 start up the standby on "192.168.4.143" ... OK register the standby on "192.168.4.143" ... [INFO] connecting to local node "node3" (ID: 3) [INFO] connecting to primary database [INFO] standby registration complete [NOTICE] standby node "node3" (ID: 3) successfully registered [INSTALL] register the standby on "192.168.4.143" ... OK [INSTALL] now create witness node 属于此数据库系统的文件宿主为用户 "kingbase". 此用户也必须为服务器进程的宿主. 数据库簇将使用本地化语言 "zh_CN.UTF-8"进行初始化. 默认的数据库编码已经相应的设置为 "UTF8". 缺省的文本搜索配置将会被设置到"simple" 字符串的比较区分大小写. 允许生成数据页校验和. 修复已存在目录 /Kingbase/ES/V9/cluster/data 的权限 ... 成功 正在创建子目录 ... initdb: 找不到适合区域设置的文本搜索配置 "zh_CN.UTF-8" 成功 选择动态共享内存实现 ......posix 选择默认最大联接数 (max_connections) ... 100 选择默认共享缓冲区大小 (shared_buffers) ... 128MB 选择默认时区...Asia/Shanghai 创建配置文件 ... 成功 开始设置加密设备 正在初始化加密设备...成功 正在运行自举脚本 ...成功 正在执行自举后初始化 ...成功 创建安全数据库...成功 加载安全数据库...成功 同步数据到磁盘...成功 成功。您现在可以用下面的命令开启数据库服务器: /Kingbase/ES/V9/cluster/kingbase/bin/sys_ctl -D /Kingbase/ES/V9/cluster/data -l 日志文件 start [INSTALL] end to init the database on "192.168.4.144" ... OK [INSTALL] wirte the kingbase.conf on "192.168.4.144" ... [INSTALL] wirte the kingbase.conf on "192.168.4.144" ... OK [INSTALL] wirte the es_rep.conf on "192.168.4.144" ... [INSTALL] wirte the es_rep.conf on "192.168.4.144" ... OK [INSTALL] wirte the sys_hba.conf on "192.168.4.144" ... [INSTALL] wirte the sys_hba.conf on "192.168.4.144" ... OK [INSTALL] start up the database on "192.168.4.144" ... [INSTALL] /Kingbase/ES/V9/cluster/kingbase/bin/sys_ctl -w -t 60 -l /Kingbase/ES/V9/cluster/kingbase/logfile -D /Kingbase/ES/V9/cluster/data start 等待服务器进程启动 .... 完成 服务器进程已经启动 [INSTALL] start up the database on "192.168.4.144" ... OK [INSTALL] create the database "esrep" and user "esrep" for repmgr ... CREATE DATABASE CREATE ROLE [INSTALL] create the database "esrep" and user "esrep" for repmgr ... OK [INSTALL] register the witness on "192.168.4.144" ... [INFO] connecting to witness node "node5" (ID: 5) [INFO] connecting to primary node [NOTICE] attempting to install extension "repmgr" [NOTICE] "repmgr" extension successfully installed [INFO] witness registration complete [NOTICE] witness node "node5" (ID: 5) successfully registered [INSTALL] register the witness on "192.168.4.144" ... OK [INSTALL] start up the whole cluster ... 2024-05-28 23:38:36 Ready to start all DB ... 2024-05-28 23:38:37 begin to start DB on "[192.168.4.141]". 2024-05-28 23:38:38 DB on "[192.168.4.141]" already started, connect to check it. 2024-05-28 23:38:39 DB on "[192.168.4.141]" start success. 2024-05-28 23:38:39 Try to ping trusted_servers on host 192.168.4.141 ... 2024-05-28 23:38:42 Try to ping trusted_servers on host 192.168.4.142 ... 2024-05-28 23:38:45 Try to ping trusted_servers on host 192.168.4.143 ... 2024-05-28 23:38:48 Try to ping trusted_servers on host 192.168.4.144 ... 2024-05-28 23:38:51 begin to start DB on "[192.168.4.142]". 2024-05-28 23:38:53 DB on "[192.168.4.142]" already started, connect to check it. 2024-05-28 23:38:54 DB on "[192.168.4.142]" start success. 2024-05-28 23:38:54 begin to start DB on "[192.168.4.143]". 2024-05-28 23:38:55 DB on "[192.168.4.143]" already started, connect to check it. 2024-05-28 23:38:56 DB on "[192.168.4.143]" start success. 2024-05-28 23:38:56 begin to start DB on "[192.168.4.144]". 2024-05-28 23:38:57 DB on "[192.168.4.144]" already started, connect to check it. 2024-05-28 23:38:58 DB on "[192.168.4.144]" start success. ID | Name | Role | Status | Upstream | Location | Priority | Timeline | LSN_Lag | Connection string ----+-------+---------+-----------+----------+----------+----------+----------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 | node1 | primary | * running | | default | 100 | 1 | | host=192.168.4.141 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=2 keepalives_interval=2 keepalives_count=3 tcp_user_timeout=9000 2 | node2 | standby | running | node1 | default | 100 | 1 | 0 bytes | host=192.168.4.142 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=2 keepalives_interval=2 keepalives_count=3 tcp_user_timeout=9000 3 | node3 | standby | running | node1 | default | 100 | 1 | 0 bytes | host=192.168.4.143 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=2 keepalives_interval=2 keepalives_count=3 tcp_user_timeout=9000 5 | node5 | witness | * running | node1 | default | 0 | n/a | | host=192.168.4.144 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=2 keepalives_interval=2 keepalives_count=3 tcp_user_timeout=9000 2024-05-28 23:38:58 The primary DB is started. 2024-05-28 23:39:03 Success to load virtual ip [192.168.4.145/24] on primary host [192.168.4.141]. 2024-05-28 23:39:03 Try to ping vip on host 192.168.4.141 ... 2024-05-28 23:39:06 Try to ping vip on host 192.168.4.142 ... 2024-05-28 23:39:09 Try to ping vip on host 192.168.4.143 ... 2024-05-28 23:39:12 Try to ping vip on host 192.168.4.144 ... 2024-05-28 23:39:16 begin to start repmgrd on "[192.168.4.141]". [2024-05-28 23:39:17] [NOTICE] using provided configuration file "/Kingbase/ES/V9/cluster/kingbase/bin/../etc/repmgr.conf" [2024-05-28 23:39:17] [NOTICE] redirecting logging output to "/Kingbase/ES/V9/cluster/kingbase/log/hamgr.log" 2024-05-28 23:39:19 repmgrd on "[192.168.4.141]" start success. 2024-05-28 23:39:19 begin to start repmgrd on "[192.168.4.142]". [2024-05-28 23:39:20] [NOTICE] using provided configuration file "/Kingbase/ES/V9/cluster/kingbase/bin/../etc/repmgr.conf" [2024-05-28 23:39:20] [NOTICE] redirecting logging output to "/Kingbase/ES/V9/cluster/kingbase/log/hamgr.log" 2024-05-28 23:39:22 repmgrd on "[192.168.4.142]" start success. 2024-05-28 23:39:22 begin to start repmgrd on "[192.168.4.143]". [2024-05-28 23:39:24] [NOTICE] using provided configuration file "/Kingbase/ES/V9/cluster/kingbase/bin/../etc/repmgr.conf" [2024-05-28 23:39:24] [NOTICE] redirecting logging output to "/Kingbase/ES/V9/cluster/kingbase/log/hamgr.log" 2024-05-28 23:39:26 repmgrd on "[192.168.4.143]" start success. 2024-05-28 23:39:26 begin to start repmgrd on "[192.168.4.144]". [2024-05-28 23:39:27] [NOTICE] using provided configuration file "/Kingbase/ES/V9/cluster/kingbase/bin/../etc/repmgr.conf" [2024-05-28 23:39:27] [NOTICE] redirecting logging output to "/Kingbase/ES/V9/cluster/kingbase/log/hamgr.log" 2024-05-28 23:39:29 repmgrd on "[192.168.4.144]" start success. ID | Name | Role | Status | Upstream | repmgrd | PID | Paused? | Upstream last seen ----+-------+---------+-----------+----------+---------+-------+---------+-------------------- 1 | node1 | primary | * running | | running | 42633 | no | n/a 2 | node2 | standby | running | node1 | running | 9348 | no | 0 second(s) ago 3 | node3 | standby | running | node1 | running | 9324 | no | 1 second(s) ago 5 | node5 | witness | * running | node1 | running | 32410 | no | 0 second(s) ago [2024-05-28 23:39:32] [NOTICE] redirecting logging output to "/Kingbase/ES/V9/cluster/kingbase/log/kbha.log" [2024-05-28 23:39:36] [NOTICE] redirecting logging output to "/Kingbase/ES/V9/cluster/kingbase/log/kbha.log" [2024-05-28 23:39:40] [NOTICE] redirecting logging output to "/Kingbase/ES/V9/cluster/kingbase/log/kbha.log" [2024-05-28 23:39:44] [NOTICE] redirecting logging output to "/Kingbase/ES/V9/cluster/kingbase/log/kbha.log" 2024-05-28 23:39:45 Done. [INSTALL] start up the whole cluster ... OK [kingbase@Node1 bin]$
6.2、设置环境变量
说明:PATH:Kingbase数据库安装目录,KINGBASE_DATA:Kingbase数据库data安装目录
vi /home/kingbase/.bashrc export KINGBASE_DATA=/Kingbase/ES/V9/cluster/data export PATH=$PATH:/Kingbase/ES/V9/cluster/kingbase/bin export LANG=zh_CN.UTF8 export KINGBASE_PORT=54321 #让环境变量生效 source /home/kingbase/.bashrc
7、集群部署测试
7.1、登录测试,发现提示密码错误
[kingbase@Node1 ~]$ ksql -Usystem -dtest 用户 system 的口令: ksql: 错误: could not connect to server: FATAL: password authentication failed for user "system" [kingbase@Node1 ~]$
说明:此时,可以先修改sys_hba.conf免密登录,成功登录后再将sys_hba.conf加密修改回来
修改sys_hba.conf免密登录脚本如下:
[kingbase@Node1 ~]$ vi $KINGBASE_DATA/sys_hba.conf #将local、127.0.0.1认证方式改为trust(本地免密) # "local" 只能用于UNIX域套接字 local all all trust # IPv4 本地连接: host all all 127.0.0.1/32 trust #host all all 0.0.0.0/0 scram-sha-256
重启Kingbase服务,重启脚本如下:
[kingbase@Node1 ~]$ sys_ctl restart 等待服务器进程关闭 .... 完成 服务器进程已经关闭 等待服务器进程启动 ....2024-05-29 18:05:31.461 CST [165533] LOG: sepapower extension initialized 2024-05-29 18:05:31.469 CST [165533] LOG: starting KingbaseES V009R001C001B0025 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit 2024-05-29 18:05:31.469 CST [165533] LOG: listening on IPv4 address "0.0.0.0", port 54321 2024-05-29 18:05:31.469 CST [165533] LOG: listening on IPv6 address "::", port 54321 2024-05-29 18:05:31.470 CST [165533] LOG: listening on Unix socket "/tmp/.s.KINGBASE.54321" 2024-05-29 18:05:31.517 CST [165533] LOG: redirecting log output to logging collector process 2024-05-29 18:05:31.517 CST [165533] HINT: Future log output will appear in directory "sys_log". 完成 服务器进程已经启动
重新登录ksql,查看脚本如下:
[kingbase@Node1 ~]$ ksql -Usystem -dtest 输入 "help" 来获取帮助信息. test=# test=# test=# select version(); version --------------------------------------------------------------------------------------------------------- ------------- KingbaseES V009R001C001B0025 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5 -28), 64-bit (1 行记录) test=#
7.2、查看集群
方法1:登录ksql查看,查看脚本如下:
[kingbase@Node1 ~]$ ksql -Usystem -dtest 输入 "help" 来获取帮助信息. test=# SELECT application_name,client_addr,state,sync_priority,sync_state test-# FROM sys_stat_replication; application_name | client_addr | state | sync_priority | sync_state ------------------+---------------+-----------+---------------+------------ node3 | 192.168.4.143 | streaming | 1 | quorum node2 | 192.168.4.142 | streaming | 1 | quorum (2 行记录)
方法2:使用repmgr工具查看,查看脚本如下:
[kingbase@Node4 bin]$ /Kingbase/ES/V9/cluster/kingbase/bin/repmgr cluster show ID | Name | Role | Status | Upstream | Location | Priority | Timeline | LSN_Lag | Connection string ----+-------+---------+-----------+----------+----------+----------+----------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 1 | node1 | primary | * running | | default | 100 | 1 | | host=192.168.4.141 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=2 keepalives_interval=2 keepalives_count=3 tcp_user_timeout=9000 2 | node2 | standby | running | node1 | default | 100 | 1 | 0 bytes | host=192.168.4.142 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=2 keepalives_interval=2 keepalives_count=3 tcp_user_timeout=9000 3 | node3 | standby | running | node1 | default | 100 | 1 | 0 bytes | host=192.168.4.143 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=2 keepalives_interval=2 keepalives_count=3 tcp_user_timeout=9000 5 | node5 | witness | * running | node1 | default | 0 | n/a | | host=192.168.4.144 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=2 keepalives_interval=2 keepalives_count=3 tcp_user_timeout=9000
8、集群部署问题
- 1、securecmdd安装后,远程无法访问
原因:防火墙问题,需关闭防火墙,或开放54321,8890端口;
- 2、系统安装终止,提示Permission denied
原因:各节点权限或属主问题,需检查各节点的安装路径属主和权限。
- 3、登录ksql提示密码错误:could not connect to server: FATAL: password authentication failed for user "system"
原因:客户端密码验证问题,需修改sys_hba.conf的local,127.0.0.1的密码验证方式改为trust。
总结:
关于用户要求的安全等级较高,无法使用ssh建立互信的情况下,可以使用sys_securecmdd部署Kingbase集群,该工具的优点:有助于方便、快捷的部署,对于初学者,根据以上文章内容,相信一定能够完整部署。





