前情回顾
前面几期内容我们介绍了金仓数据库的 单机版 和 Docker 版本 的安装以及使用方法,还深入探讨了 SQL Server 兼容版本 的一些特性。如果你是初次接触金仓数据库,建议先阅读以下内容:
当然,如果你对“金仓数据库认证”感兴趣,欢迎加入“金仓数据库技术交流群”共同学习。关注公众号<少安事务所>,后台回复<金仓>即可找到入口。
这些内容为本次集群搭建奠定了坚实的基础,本文将通过一个简单易懂的案例,来深入了解一下金仓数据库 KES RWC 集群的安装部署过程。
KingbaseES RWC 介绍
MAA 解决方案
在深入了解 KES 高可用集群之前,我们先来回顾一下什么是 MAA 架构。
KingbaseES 最大可用性架构(以下简称 MAA,Maximum Availability Architecture)定义了实现不同等级可用性的解决方案架构,这些架构可以满足各种规模的组织使用的各类应用对可用性和数据保护的需求。
MAA定义了三个保护级别:
初级保护架构,适用于对高可用需求要求不高,可通过重新启动故障组件(如数据库实例)、从备份恢复解决存储故障等功能满足。大部分维护操作需要停机。
中级保护架构,在初级的基础上支持在节点故障时自动切换,最小化停机时间。对于常见的计划内维护操作,如硬件和软件更新可以实施滚动操作。在可用区级别故障发生时仍然需要从备份恢复数据库。
高级保护架构,通过跨可用区和地域的实时复制解决灾难恢复的实时性需求,增加逻辑复制特性在线处理更多的维护操作,适用于有高 RTO 和 RPO 的关键业务使用,对包括灾难在内各种故障引起的计划外停机、物理复制无法实现的在线维护操作有更多支持。
每个 MAA 架构都提供经大量实际项目验证的高可用性和数据保护能力。
下表总结了各架构对应的高可用性和数据保护能力。每个架构都包含了上一个架构的所有功能,并在上一个架构的基础上处理更多的停机类型。
| MAA架构 | 计划外故障 | 计划内维护 | 数据保护 | 灾难恢复 |
|---|---|---|---|---|
| 初级 | 单实例,通过自动重启减少数据库实例故障造成的停机时间。通过硬件冗余部署解决网络、存储等硬件故障。 | 少量在线完成大部分离线完成。 | 运行时验证和人工检查相结合。 | 从备份恢复,可能丢失未完成归档备份的数据。 |
| 中级 | 实例和主机故障自动切换。 | 大部分在线滚动完成,少量离线完成。 | 运行时验证和人工检查相结合。 | 从备份恢复,可能丢失未完成归档备份的数据。 |
| 高级 | 可用区和地域级故障切换。 | 全部滚动或在线完成。 | 运行时验证和人工检查相结合。 | 实时切换,不丢失或少量数据丢失。 |
在了解了 MAA 解决方案后,接下来介绍 KingbaseES 读写分离集群架构。
Kingbase RWC
金仓数据库读写分离集群(KingbaseES RWC),是一款基于 KingbaseES 提供的一个用于提升并发事务处理性能的集群,可自动分离读写事务,减轻主库读负载压力。
集群通过物理复制保障企业数据的高可用性、数据保护和灾难恢复,并具备对应用透明的读写负载均衡能力。相比数据守护集群,该类集群中所有备库均可对外提供查询能力,从而减轻了主库的读负载压力,可实现更高的事务吞吐率;该软件支持在多个备库间进行读负载均衡。

(图 – 产品架构)
核心优势:
- 高可用性。支持配置多个备库节点,确保主库故障时能在 3 秒内切换。支持非硬件故障的主机/备机恢复后能自动重新加入集群并同步数据。
- 读写分离。基于事务级别的读写分离方案,通过 JDBC 驱动自动识别 SQL 语句读写种类,写语句发给主机,分发读语句到备机,从而实现读写分离。
- 负载均衡。驱动分发器均衡的将读操作均衡地分配到所有备库节点,降低主库的读写冲突,提高查询性能。
- 在线扩展。支持在线增加备库节点,新节点会被集群自动识别、同步日志,并参与读操作负载均衡。
- 性能提升。显著提升了读密集型应用系统的数据库响应能力。例如,70% 读操作的应用通过部署 2 节点读写分离,可提升整体性能 1.5 倍以上。
KingbaseES RWC 的读写分离通过 JDBC 实现。建议连接字符串写主节点的地址,备节点地址通过 SLAVE_ADD 和 SLAVE_PORT 进行配置。
JDBC 配置示例如下。其中,参数 USEDISPATCH 表示打开读写分离功能,nodeList 用来指定节点名称。
jdbc:kingbase8://192.168.0.100:54321/test?USEDISPATCH=true&SLAVE_ADD=192.168.0.101,192.168.0.102&SLAVE_PORT=54321,54321&nodeList=node1,node2,node3

KingbaseES RWC 安装
环境准备
这里准备三台机器搭建 KingbaseES RWC 集群环境,一台主节点,两台备节点轮询分发读流量。
| # | 服务器名 | 服务器IP | 角色 |
|---|---|---|---|
| 1 | kes1 | 192.168.43.91 | 主节点 |
| 2 | kes2 | 192.168.43.92 | 备节点 |
| 3 | kes3 | 192.168.43.93 | 备节点 |
机器准备好之后,分别在三台机器追加 IP 主机名映射。
$ tail -n4 /etc/hosts
192.168.43.2 gw
192.168.43.91 kes1
192.168.43.92 kes2
192.168.43.93 kes3
分别在三台机器创建用户 kingbase,并赋予 sudo 权限。
sudo useradd kingbase
echo "kingbase ALL=(ALL) NOPASSWD:ALL" | sudo tee -e /etc/sudoers
KES RWC 支持图形化安装和命令行安装两种方式,下面演示使用命令行安装。
主机点安装 KES 软件
这一部分与单机版安装相似,但只需在主节点进行。
步骤我们快进一下。
挂载光盘镜像,安装数据库。
安装完成后,不需要将数据库注册到系统服务。
[kingbase@kes1 V9]$ pwd
/opt/Kingbase/ES/V9
[kingbase@kes1 V9]$ ll -h
total 4.0K
lrwxrwxrwx 1 kingbase kingbase 56 Jan 31 02:53 ClientTools -> /opt/Kingbase/ES/V9/KESRealPro/V009R004C010/ClientTools/
drwx------ 23 kingbase kingbase 4.0K Jan 31 02:57 data
lrwxrwxrwx 1 kingbase kingbase 48 Jan 31 02:53 doc -> /opt/Kingbase/ES/V9/KESRealPro/V009R004C010/doc/
lrwxrwxrwx 1 kingbase kingbase 52 Jan 31 02:53 install -> /opt/Kingbase/ES/V9/KESRealPro/V009R004C010/install/
lrwxrwxrwx 1 kingbase kingbase 54 Jan 31 02:53 Interface -> /opt/Kingbase/ES/V9/KESRealPro/V009R004C010/Interface/
drwxrwxr-x 3 kingbase kingbase 26 Jan 31 02:52 KESRealPro
lrwxrwxrwx 1 kingbase kingbase 55 Jan 31 02:53 license.dat -> /opt/Kingbase/ES/V9/KESRealPro/V009R004C010/license.dat
lrwxrwxrwx 1 kingbase kingbase 51 Jan 31 02:53 Server -> /opt/Kingbase/ES/V9/KESRealPro/V009R004C010/Server/
lrwxrwxrwx 1 kingbase kingbase 53 Jan 31 02:53 SupTools -> /opt/Kingbase/ES/V9/KESRealPro/V009R004C010/SupTools/
lrwxrwxrwx 1 kingbase kingbase 54 Jan 31 02:53 Uninstall -> /opt/Kingbase/ES/V9/KESRealPro/V009R004C010/Uninstall/
[kingbase@kes1 V9]$
集群组件安装
接下来继续在主节点进行集群组件安装。
集群安装脚本在部署工具目录下。
[kingbase@kes1 zip]$ pwd
/opt/Kingbase/ES/V9/ClientTools/guitools/DeployTools/zip
[kingbase@kes1 zip]$ ll -h
total 328M
-rwxrwxr-x 1 kingbase kingbase 217K Jan 10 17:52 cluster_install.sh
-rw-rw-r-- 1 kingbase kingbase 326M Jan 10 17:52 db.zip
-rw-rw-r-- 1 kingbase kingbase 18K Jan 10 17:52 install.conf
-rw-rw-r-- 1 kingbase kingbase 2.5M Jan 10 17:52 securecmdd.zip
-rwxrwxr-x 1 kingbase kingbase 7.2K Jan 10 17:52 trust_cluster.sh
配置文件
需要修改配置文件中的一些参数,主要是路径、IP、网卡相关信息。
[kingbase@kes1 zip]$ diff install.conf install.conf.org
23c23
< all_ip=(kes1 kes2 kes3)
---
> all_ip=()
55c55
< zip_package="/opt/Kingbase/ES/V9/ClientTools/guitools/DeployTools/zip/db.zip"
---
> zip_package=""
125c125
< trusted_servers="gw"
---
> trusted_servers=""
149c149
< virtual_ip="192.168.43.90/24"
---
> virtual_ip=""
155c155
< net_device=(ens160 ens160 ens160)
---
> net_device=()
161c161
< net_device_ip=(192.168.43.91 192.168.43.92 192.168.43.93)
---
> net_device_ip=()
不过这个配置文件还是复杂了点,可以继续简化调优。
关于 trusted_servers 参数的含义:
网络故障是最容易造成脑裂的故障,特别是主库或备库的网络断开,如果不能正确的知道是否为本节点的网络故障,容易造成脑裂。为了能够识别网络故障,KingbaseES引入了"信任网关(trusted_servers)"的概念,守护进程 kbha 通过判断和信任网关的连通性来判断本机是否出现了网络故障。
trusted_servers 配置为集群内部网络的网关设备的IP地址,例如路由器的IP地址。
配置免密
执行免密配置脚本即可创建互信,不过这里还需要输入 root 用户密码。
[kingbase@kes1 zip]$ sudo ./trust_cluster.sh
Generating public/private rsa key pair.
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:H0pIEqPcXPnQ32M3hwChnd/BwfUYsJhGCbLzgVgL0SU root@kes1
The key's randomart image is:
+---[RSA 3072]----+
| =oE+o.++.oo..|
| . + B+*.+.+.o.+.|
| o = *oo.*...+..|
| o +.o..+.+..|
| . S ...o.o |
| . o . |
| . . |
| |
| |
+----[SHA256]-----+
Warning: Permanently added 'kes1' (ED25519) to the list of known hosts.
id_rsa 100% 2590 5.3MB/s 00:00
id_rsa.pub 100% 563 1.8MB/s 00:00
authorized_keys 100% 563 1.2MB/s 00:00
known_hosts 100% 177 400.5KB/s 00:00
Warning: Permanently added 'kes2' (ED25519) to the list of known hosts.
root@kes2's password:
id_rsa 100% 2590 4.6MB/s 00:00
id_rsa.pub 100% 563 1.7MB/s 00:00
authorized_keys 100% 563 1.8MB/s 00:00
known_hosts 100% 263 446.9KB/s 00:00
Warning: Permanently added 'kes3' (ED25519) to the list of known hosts.
root@kes3's password:
id_rsa 100% 2590 4.4MB/s 00:00
id_rsa.pub 100% 563 1.0MB/s 00:00
authorized_keys 100% 563 738.5KB/s 00:00
known_hosts 100% 349 423.2KB/s 00:00
connect to "kes1" from current node by 'ssh' root:0 kingbase:0..... OK
connect to "kes2" from "kes1" by 'ssh' root->root:0 root->kingbase:0 kingbase->kingbase:0 kingbase->root:0.... OK
connect to "kes2" from current node by 'ssh' root:0 kingbase:0..... OK
connect to "kes3" from "kes2" by 'ssh' root->root:0 root->kingbase:0 kingbase->kingbase:0 kingbase->root:0.... OK
connect to "kes3" from current node by 'ssh' root:0 kingbase:0..... OK
connect to "kes1" from "kes3" by 'ssh' root->root:0 root->kingbase:0 kingbase->kingbase:0 kingbase->root:0.... OK
check ssh connection success!
集群安装
在主节点的 kingbase 用户下,执行 cluster_install.sh 脚本进行集群部署。
输出日志略长,以下是精简后的日志。
[kingbase@kes1 zip]$ ./cluster_install.sh
[CONFIG_CHECK] will deploy the cluster of DG
[RUNNING] check the [net_device_ip] on dev [net_device] ...
[RUNNING] check the db is running or not...
[RUNNING] check the sys_securecmdd is running or not...
[RUNNING] check if the install dir is already exist ...
[RUNNING] check if the data directory is empty or not exist ...
2025-01-31 19:03:04 [INFO] start to check system parameters on kes1 ...
[INSTALL] create the install dir "/home/kingbase/cluster/install/kingbase" on every host ...
[INSTALL] success to scp the install dir "/home/kingbase/cluster/install/kingbase" to "kes1" ..... OK
[RUNNING] config the sys_securecmdd port to 8890 ...
[INSTALL] begin to init the database on "kes1" ...
[INSTALL] end to init the database on "kes1" ... OK
[INSTALL] write the kingbase.conf on "kes1" ... OK
[INSTALL] write the es_rep.conf on "kes1" ... OK
[INSTALL] write the sys_hba.conf on "kes1" ... OK
[INSTALL] write the .encpwd on every host
[INSTALL] write the repmgr.conf on every host
[INSTALL] start up the database on "kes1" ... OK
[INSTALL] the db_name is "master"
[INSTALL] create the database "esrep" and user "esrep" for repmgr ... OK
[INSTALL] register the primary on "kes1" ...
[INFO] connecting to primary database...
[NOTICE] attempting to install extension "repmgr"
[NOTICE] "repmgr" extension successfully installed
[NOTICE] node (ID: 1) acquire the virtual ip 192.168.43.90/24 success
[NOTICE] primary node record (ID: 1) registered
[INSTALL] register the primary on "kes1" ... OK
[INSTALL] clone and start up the standby ...
clone the standby on "kes2" ...
/home/kingbase/cluster/install/kingbase/bin/repmgr -h kes1 -U esrep -d esrep -p 54321 --fast-checkpoint --upstream-node-id 1 standby clone
[NOTICE] destination directory "/home/kingbase/cluster/install/kingbase/data" provided
[INFO] connecting to source node
[DETAIL] connection string is: host=kes1 user=esrep port=54321 dbname=esrep
[DETAIL] current installation size is 99 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] creating directory "/home/kingbase/cluster/install/kingbase/data"...
[INFO] creating replication slot as user "esrep"
[NOTICE] starting backup (using sys_basebackup)...
[INFO] executing:
/home/kingbase/cluster/install/kingbase/bin/sys_basebackup -l "repmgr base backup" -D /home/kingbase/cluster/install/kingbase/data -h kes1 -p 54321 -U esrep -c fast -X stream -S repmgr_slot_2
[NOTICE] standby clone (using sys_basebackup) complete
[INFO] standby registration complete
[NOTICE] standby node "node2" (ID: 2) successfully registered
[INSTALL] register the standby on "kes2" ... OK
[NOTICE] standby node "node3" (ID: 3) successfully registered
[INSTALL] register the standby on "kes3" ... OK
[INSTALL] start up the whole cluster ...
2025-01-31 19:06:08 Ready to start all DB ...
2025-01-31 19:06:09 DB on "[kes1]" start success.
2025-01-31 19:06:19 DB on "[kes2]" start success.
2025-01-31 19:06:20 DB on "[kes3]" start success.
ID | Name | Role | Status | Upstream | Location | Priority | Timeline | LSN_Lag | Connection string
----+-------+---------+-----------+----------+----------+----------+----------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------
1 | node1 | primary | * running | | default | 100 | 1 | | host=kes1 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=kes2 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=kes3 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=2 keepalives_interval=2 keepalives_count=3 tcp_user_timeout=9000
2025-01-31 19:06:20 The primary DB is started.
2025-01-31 19:06:24 Success to load virtual ip [192.168.43.90/24] on primary host [kes1].
2025-01-31 19:06:33 repmgrd on "[kes1]" start success.
2025-01-31 19:06:35 repmgrd on "[kes2]" start success.
2025-01-31 19:06:37 repmgrd on "[kes3]" start success.
ID | Name | Role | Status | Upstream | repmgrd | PID | Paused? | Upstream last seen
----+-------+---------+-----------+----------+---------+-------+---------+--------------------
1 | node1 | primary | * running | | running | 15408 | no | n/a
2 | node2 | standby | running | node1 | running | 6701 | no | 1 second(s) ago
3 | node3 | standby | running | node1 | running | 6640 | no | 1 second(s) ago
2025-01-31 19:06:43 Done.
[INSTALL] start up the whole cluster ... OK
这一步耗时不到 4 分钟,整体安装过程很顺滑。
集群状态检查
安装完成后,集群已启动运行,检查集群状态。
[kingbase@kes1 ~]$ export PATH=/home/kingbase/cluster/install/kingbase/bin:$PATH
[kingbase@kes1 ~]$ repmgr cluster show
ID | Name | Role | Status | Upstream | Location | Priority | Timeline | LSN_Lag | Connection string
----+-------+---------+-----------+----------+----------+----------+----------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------
1 | node1 | primary | * running | | default | 100 | 1 | | host=kes1 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=kes2 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=kes3 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=2 keepalives_interval=2 keepalives_count=3 tcp_user_timeout=9000
[kingbase@kes1 ~]$
检查 repmgrd 服务器状态。
[kingbase@kes1 ~]$ repmgr service status
ID | Name | Role | Status | Upstream | repmgrd | PID | Paused? | Upstream last seen
----+-------+---------+-----------+----------+---------+-------+---------+--------------------
1 | node1 | primary | * running | | running | 15408 | no | n/a
2 | node2 | standby | running | node1 | running | 6701 | no | 2 second(s) ago
3 | node3 | standby | running | node1 | running | 6640 | no | 0 second(s) ago
[kingbase@kes1 ~]$
集群启停
在主节点执行 sys_monitor.sh 脚本控制集群启停。
- 停止集群
[kingbase@kes1 ~]$ sys_monitor.sh stop
2025-01-31 21:06:37 Ready to stop all DB ...
2025-01-31 21:06:44 begin to stop repmgrd on "[kes1]".
2025-01-31 21:06:44 repmgrd on "[kes1]" stop success.
2025-01-31 21:06:44 begin to stop repmgrd on "[kes2]".
2025-01-31 21:06:45 repmgrd on "[kes2]" stop success.
2025-01-31 21:06:45 begin to stop repmgrd on "[kes3]".
2025-01-31 21:06:46 repmgrd on "[kes3]" stop success.
2025-01-31 21:06:46 begin to stop DB on "[kes2]".
waiting for server to shut down.... done
server stopped
2025-01-31 21:06:47 DB on "[kes2]" stop success.
2025-01-31 21:06:47 begin to stop DB on "[kes3]".
waiting for server to shut down.... done
server stopped
2025-01-31 21:06:47 DB on "[kes3]" stop success.
2025-01-31 21:06:47 begin to stop DB on "[kes1]".
waiting for server to shut down.... done
server stopped
2025-01-31 21:06:48 DB on "[kes1]" stop success.
2025-01-31 21:06:48 Done.
- 启动集群
[kingbase@kes1 ~]$ sys_monitor.sh start
2025-01-31 21:07:20 Ready to start all DB ...
2025-01-31 21:07:20 begin to start DB on "[kes1]".
waiting for server to start.... done
server started
2025-01-31 21:07:21 execute to start DB on "[kes1]" success, connect to check it.
2025-01-31 21:07:22 DB on "[kes1]" start success.
2025-01-31 21:07:32 DB on "[kes2]" start success.
2025-01-31 21:07:34 DB on "[kes3]" start success.
ID | Name | Role | Status | Upstream | Location | Priority | Timeline | LSN_Lag | Connection string
----+-------+---------+-----------+----------+----------+----------+----------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------
1 | node1 | primary | * running | | default | 100 | 1 | | host=kes1 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=kes2 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=kes3 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=2 keepalives_interval=2 keepalives_count=3 tcp_user_timeout=9000
2025-01-31 21:07:34 The primary DB is started.
2025-01-31 21:07:45 Success to load virtual ip [192.168.43.90/24] on primary host [kes1].
2025-01-31 21:07:55 repmgrd on "[kes1]" start success.
2025-01-31 21:07:57 repmgrd on "[kes2]" start success.
2025-01-31 21:08:00 repmgrd on "[kes3]" start success.
ID | Name | Role | Status | Upstream | repmgrd | PID | Paused? | Upstream last seen
----+-------+---------+-----------+----------+---------+-------+---------+--------------------
1 | node1 | primary | * running | | running | 38349 | no | n/a
2 | node2 | standby | running | node1 | running | 21446 | no | 1 second(s) ago
3 | node3 | standby | running | node1 | running | 21347 | no | 1 second(s) ago
2025-01-31 21:08:08 Done.
[kingbase@kes1 ~]$
集群组件

repmgr 用于管理 KES RWC 中的故障转移,可支持一主一备或一主多备,备库支持同步和异步模式。
repmgrd 用于主动监视集群各节点状态并执行某些任务的守护进程,主要包括:监视和记录复制性能;通过检测主库的故障并提升最合适的备库进行故障转移。
sys_securecmd 是集群中自带的工具,用于远程通信。
sys_securecmdd 用于集群监控和管理,通过其安全执行命令。 sys_securecmdd 工具默认端口 8890。
[kingbase@kes2 ~]$ sudo ss -antpl | grep 8890
LISTEN 0 128 0.0.0.0:8890 0.0.0.0:* users:(("sys_securecmdd",pid=5238,fd=3))
LISTEN 0 128 [::]:8890 [::]:* users:(("sys_securecmdd",pid=5238,fd=4))
kbha 是 KingbaseRWC 集群的复制管理守护进程。每个数据库节点都有一个 kbha 守护进程,其主要监控并守护 repmgrd 进程,同时对环境进行监控,包括:磁盘状态、信任网关状态。
连接集群
使用客户端连接集群。
[kingbase@kes1 ~]$ export KINGBASE_PASSWORD=12345678ab
[kingbase@kes1 ~]$ ksql -h 192.168.43.90 -U system -d kingbase
Licesen Type: SALES-企业版.
Type "help" for help.
kingbase=# select version();
version
-------------------------
KingbaseES V009R004C010
(1 row)
kingbase=# show database_mode;
database_mode
---------------
sqlserver
(1 row)
需要注意的是,集群创建完成后,会自动设定 system 用户密码,初始密码为 12345678ab。
总结
本文介绍了金仓数据库 KES RWC 集群的安装部署,并强调了一些安装细节,希望对你有所帮助。
后面我们再另开篇分享如果对 KES RWC 进行一系列测试。




