大家好,这里是公众号 DBA学习之路,分享一些学习国产数据库路上的知识和经验。

@TOC

前言

金仓 V9R1C10 版本面向全市场发布,具备 Oracle、MySQL、SQL Server、PostgreSQL 四种兼容模式,在保留 V9R1C2B14 版本能力基础上,持续增强 SQLServer 能力兼容。

该版本全面兼容 SQL Server 的常用数据类型、语法及功能,优化 PLSQL 开发能力,兼容 SQL Server 事务管理(BEGIN/COMMIT/ROLLBACK)及嵌套事务,强化触发器、游标操作和元数据管理能力,有效提升开发效率,可轻松应对各类复杂业务场景。

本文主要记录人大金仓 KES V9 V9R1C10 版的安装步骤以及经验总结,让大家更容易安装 KingbaseES,安装过程很丝滑。

环境准备

本文演示环境为:

主机名 版本 CPU 内存 硬盘
kes 银河麒麟V10 x86 16G 100G

系统安装建议不要使用最小化,可能确实必要命令(ifconfig,unzip 等),对新手不是很友好。

安装包下载

金仓官网提供安装软件介质,直接访问:下载中心

选择对应版本以及系统类型下载即可,下载完成后建议进行版本校验认证:

1
2
3
4
5
$ md5sum KingbaseES_V009R001C010B0004_Lin64_install.iso
9b39aaceb8611b1bbc587274cb58f126 KingbaseES_V009R001C010B0004_Lin64_install.iso

## 官方 MD5 校验码
9B39AACEB8611B1BBC587274CB58F126

如不是从官方渠道下载,则必须要与官方提供的校验码需保持一致,校验无误后,则可以放心使用。

安装前配置

检查操作系统版本

检查操作系统版本信息:

1
2
3
4
5
6
7
[root@kesv9 ~]# cat /etc/os-release
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Lance)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Lance)"
ANSI_COLOR="0;31"

关闭防火墙

数据库安装均建议关闭防火墙:

1
2
3
4
[root@kesv9 ~]# systemctl stop firewalld
[root@kesv9 ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

创建用户

如果有密码复杂性要求,不想设置密码太复杂的话,可以取消密码复杂度:

1
2
[root@kesv9 ~]# sed -i 's/^password\+[[:space:]]\+requisite[[:space:]]\+pam_pwquality.so/#&/g' /etc/pam.d/system-auth
[root@kesv9 ~]# sed -i 's/use_authtok$//' /etc/pam.d/system-auth

建议在所有服务器上创建 KES 产品的安装用户 kingbase,而非使用 root 身份执行安装部署:

1
2
3
4
[root@kesv9 ~]# useradd -d /home/kingbase -m kingbase
[root@kesv9 ~]# echo "kingbase:kingbase" | chpasswd
[root@kesv9 ~]# id kingbase
用户id=1001(kingbase) 组id=1001(kingbase) 组=1001(kingbase)

创建目录

为了利于数据库的日常运维、持续使用、存储扩容等,我们在安装前必须做好选项、存储目录规划:

选项 设置
目录 安装软件存储目录: /install
备份目录: /backup
归档目录: /archive
数据存储目录: /data
KES 安装目录: /KingbaseES/V9
端口 54321
SYSTEM 密码 kingbase
数据库编码格式 UTF8

创建安装所需目录并且授权:

1
2
3
4
5
[root@kesv9 ~]# mkdir -p /KingbaseES/V9 /data /backup /archive /install
[root@kesv9 ~]# chown -R kingbase:kingbase {/KingbaseES,/data,/backup,/archive,/install}
[root@kesv9 ~]# chmod -R 775 {/KingbaseES,/backup,/archive,/install}
## 注意:DATA 目录这里必须要授权 700,否则后续数据库无法启动
[root@kesv9 ~]# chmod -R 700 /data

系统参数配置

为了避免在 KingbaseES 安装和使用过程中出现问题,官方建议调整系统内核参数:

1
2
3
4
5
6
7
8
9
10
# 物理内存(KB)
os_memory_total=$(awk '/MemTotal/{print $2}' /proc/meminfo)
# 获取系统页面大小,用于计算内存总量
pagesize=$(getconf PAGE_SIZE)
((shmall = (os_memory_total - 1) * 1024 / pagesize))
((shmmax = os_memory_total * 1024 - 10))
# 如果 shmall 小于 2097152,则将其设为 2097152
((shmall < 2097152)) && shmall=2097152
# 如果 shmmax 小于 4294967295,则将其设为 4294967295
((shmmax < 4294967295)) && shmmax=4294967295

复制以上命令,直接执行即可计算得出这两个参数值:

1
2
3
4
[root@kesv9 ~]# echo $shmall
3775905
[root@kesv9 ~]# echo $shmmax
15466110966

根据官方建议值,配置系统参数文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@kesv9 ~]# cat<<-EOF>>/etc/sysctl.conf
fs.aio-max-nr= 1048576
fs.file-max= 6815744
kernel.shmall= 2097152
kernel.shmmax= 7008067574
kernel.shmmni= 4096
kernel.sem= 250 32000 100 128
net.ipv4.ip_local_port_range= 9000 65500
net.core.rmem_default= 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576
EOF

## 生效配置
[root@kesv9 ~]# sysctl -p

资源配置

限制用户可使用的资源数量对系统的稳定性非常重要,可以通过调整资源限制数量改进系统性能:

1
2
3
4
5
6
7
8
[root@kesv9 ~]# cat<<-EOF>>/etc/security/limits.conf
kingbase soft nofile 65536
kingbase hard nofile 65536
kingbase soft nproc 65536
kingbase hard nproc 65536
kingbase soft core unlimited
kingbase hard core unlimited
EOF

配置 RemoveIPC

systemd-logind 服务中引入的一个特性 RemoveIPC,会造成程序信号丢失等问题,只有Redhat7 及以上和一些特殊的国产Linux的版本需要修改,改之前可先查看此项是否为默认yes),需要设置 RemoveIPC=no:

1
2
3
4
5
6
[root@kesv9 ~]# sed -i 's/#RemoveIPC=no/RemoveIPC=no/' /etc/systemd/logind.conf
[root@kesv9 ~]# grep RemoveIPC /etc/systemd/logind.conf
RemoveIPC=no
# 重新加载 systemd 守护进程并重启 systemd-logind 服务生效
[root@kesv9 ~]# systemctl daemon-reload
[root@kesv9 ~]# systemctl restart systemd-logind.service

配置环境变量

这一步官方文档没有提到,是以我安装其他数据库的经验添加:

1
2
3
4
5
6
[root@kesv9 ~]# cat<<-\EOF>>/home/kingbase/.bash_profile
export KES_HOME=/KingbaseES/V9/Server
export LD_LIBRARY_PATH=$KES_HOME/lib:/lib:/usr/lib:/usr/lib64
export PATH=$KES_HOME/bin:/usr/sbin:$PATH
export PS1="[`whoami`@`hostname`:"'$PWD]$ '
EOF

环境配置方面到这就结束了,没有看到关于 selinux,swap 以及透明大页这些配置的要求,所有也就没有多此一举了。

KES 安装

V9R1C10 版本安装方式跟之前不太一样,安装只是安装 Kingbase 软件,数据库实例通过 kconsole.sh 来管理。

安装 ISO 挂载

KES 的安装包和达梦的类似,都是 iso 格式的,iso 格式的安装包需要先挂载才能使用。

挂载 iso 文件需要使用 root 用户,安装包上传在 /install 目录,挂载到 /mnt 目录下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@kesv9 ~]# cd /install/
[root@kesv9 install]# ls
KingbaseES_V009R001C010B0004_Lin64_install.iso
[root@kesv9 install]# mount -o loop KingbaseES_V009R001C010B0004_Lin64_install.iso /mnt/
mount: /mnt: WARNING: source write-protected, mounted read-only.
## 挂载目录下可以看到 setup 目录和 setup.sh 脚本
[root@kesv9 soft]# ll /mnt/
dr-xr-xr-x 3 root root 2048 6月 26 2023 setup
-r-xr-xr-x 1 root root 4299 6月 26 2023 setup.sh
## 将挂载出来的安装文件拷贝到 /install 目录下
[root@kesv9 install]# cp -r /mnt/* /install
[root@kesv9 install]# ll
dr-xr-xr-x 3 kingbase kingbase 65 8月 26 23:59 setup
-r-xr-xr-x 1 kingbase kingbase 4299 8月 26 23:59 setup.sh
## 复制完成后取消安装 iso 的挂载
[root@kesv9 install]# umount /mnt

此时 /mnt 已经和 iso 文件解除挂载关系,在 /mnt 目录下不会再看到安装相关文件。

配置语言环境

图形化安装支持中文和英文的安装界面,根据操作系统的语言设置会显示对应语言的安装界面,可以执行如下命令查看操作系统的语言设置:

1
2
3
4
5
[root@kesv9 install]# echo $LANG
zh_CN.UTF-8
## 显示值包含“zh_CN”,则为中文语言,否则为英文;我安装系统时选的中文,所以是中文环境
## 如何不是也可以手动切换为中文
export LANG=zh_CN.UTF-8

设置好语言环境后,切换为安装用户 kingbase,进入安装程序 setup.sh 所在目录:

1
2
3
4
5
6
## 由于之前 root 复制的安装文件权限为 root,所以需要重新授权 kingbase 用户
[root@kesv9 install]# chown -R kingbase:kingbase /install
[root@kesv9 install]# su - kingbase
[kingbase@kesv9 ~]$ cd /install/
[kingbase@kesv9 install]$ ls
KingbaseES_V009R001C010B0004_Lin64_install.iso setup setup.sh

查看一下 setup.sh 的帮助命令:

1
2
3
4
5
6
[kingbase@kesv9:/install]$ ./setup.sh --help
Usage: setup.sh <options>
<options> may be:
--help show this help, then exit
-i [ swing | console | silent ] specify the user interface mode for the installer
-f <file> specify silent installer properties file

接下来就可以开始进行 KingbaseES 的安装了。

命令行安装

命令行安装与图形化安装其实差不多,大概演示一下安装过程。

启动安装程序

启动安装程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
[kingbase@kesv9:/install]$ ./setup.sh -i console
Java Version: 1.8.0_312
Now launch installer...
Command line arguments: -console -language chn
================================================================================
欢迎使用KingbaseES安装程序
----

欢迎使用本安装程序!

本安装程序旨在为您提供方便快捷的安装体验。
在开始安装之前,请注意以下几点:

退出应用程序:
在安装过程中,我们建议退出所有正在运行的应用程序,
以确保安装程序顺利进行,您可以在安装完成后重新打开这些应用程序。

保存文档:
在继续本次安装之前,请确保您已保存并关闭所有打开的文档。
这可以防止因安装过程中需要重启电脑而导致数据丢失。

可能需要重启:
本次安装可能需要重启您的电脑以完成安装过程。
请不要担心,这是为了确保安装的完整性和稳定性。
安装程序会在需要重启时提醒您。

安装前准备:
在继续安装之前,建议您查看安装程序提供的系统要求和注意事项,
这将有助于您顺利完成安装并获得最佳使用体验。

谢谢您使用KingbaseES,
如果您在安装过程中遇到任何问题或需要帮助,请随时联系我们的技术支持团队。
祝您使用愉快!

按下 [ENTER] 下一步, [Q] 退出程序 [默认: <ENTER>]

================================================================================
许可协议
----

...协议内容省略

请输入 [1]接受, [2]拒绝, [3]重新展示:
1
================================================================================
添加Licence
----

不选择授权文件,则使用软件自带试用版授权
提示:请在有效期内及时更换正式授权文件

输入授权文件地址: [默认: ]


输入字母N进入下一步, 输入字母P返回上一步, 输入字母Q退出修改程序 [默认: N]

================================================================================
选择安装路径
----

请选择一个安装目录。
您想在哪一个位置安装?
缺省安装文件夹: /opt/Kingbase/ES/V9

输入一个绝对路径,或按ENTER键以接受缺省路径 [默认: /opt/Kingbase/ES/V9]
/KingbaseES/V9
----------------------------------
安装文件夹为:/KingbaseES/V9
是否正确?(Y/N)

请选择
----------------------------------
输入 Y 是, N 否: [默认: Y]

输入字母N进入下一步, 输入字母P返回上一步, 输入字母Q退出修改程序 [默认: N]

================================================================================
选择安装集
----

1- 完全安装
最常用的应用程序功能组件。建议大多数用户采用此选项。

2- 服务器安装
只安装数据库服务。

3- 定制安装
选择此选项以定制要安装的功能部件。

输入“安装集”的号码,或按ENTER键以接受缺省值 [默认: 1]
1
================================================================================
安装预览
----

安装目录:
/KingbaseES/V9

已安装组件:
引导组件
产品手册
数据库运维工具
数据库服务器
高可用组件
接口
数据库集群部署工具
数据库迁移工具
数据库开发工具(CS)

未安装组件:


磁盘空间信息(用于安装目标)
所需空间: 3,710.93 MB, 可用空间: 77.51 GB

输入字母N进入下一步, 输入字母P返回上一步, 输入字母Q退出修改程序 [默认: N]

================================================================================
安装进度
----

====
开始安装
架构: 6.0.0-SNAPSHOT-b32da3 (kInstaller)
平台: linux,version=4.19.90-52.22.v2207.ky10.x86_64,arch=x64,symbolicName=null,javaVersion=1.8.0_312
[ Starting to unpack ]
[ Processing package: install (1/9) ]
[ Processing package: doc (2/9) ]
[ Processing package: Suptools (3/9) ]
[ Processing package: Server (4/9) ]
[ Processing package: KingbaseHA (5/9) ]
[ Processing package: Interface (6/9) ]
[ Processing package: DeployTool (7/9) ]
[ Processing package: KDTS (8/9) ]
[ Processing package: KStudio (9/9) ]
[ Unpacking finished ]
安装完成
[ Starting processing ]
Starting process modifyexecute (1/3)
Starting process modifyFiles (2/3)
The beginning of Repair File Contents.
Running modifyFilesValue.sh...
Repair deploy.ini...Complete.
Repair File Contents Finish.


Starting process packtools (3/3)
安装成功 100%
================================================================================
快捷方式
----

------
创建快捷方式
------
输入 Y 是, N 否: [默认: Y]

创建快捷方式属主: 1:当前用户;2:所有用户 [默认: 1]

选择快捷方式的程序组: [默认: KingbaseESV009R001]

================================================================================
恭喜您!安装完成
----


恭喜您!安装完成

安装目录:
/KingbaseES/V9


引导组件:/KingbaseES/V9/KESRealPro/V009R001C010/install
产品手册:/KingbaseES/V9/KESRealPro/V009R001C010/doc
数据库运维工具:/KingbaseES/V9/KESRealPro/V009R001C010/SupTools
数据库服务器:/KingbaseES/V9/KESRealPro/V009R001C010/Server
高可用组件:/KingbaseES/V9/KESRealPro/V009R001C010/KingbaseHA
接口:/KingbaseES/V9/KESRealPro/V009R001C010/Interface
数据库集群部署工具:/KingbaseES/V9/KESRealPro/V009R001C010/ClientTools/guitools/DeployTools
数据库迁移工具:/KingbaseES/V9/KESRealPro/V009R001C010/ClientTools/guitools/KDts
数据库开发工具(CS):/KingbaseES/V9/KESRealPro/V009R001C010/ClientTools/guitools/KStudio


如需初始化数据库,请启动Kconsole:
/KingbaseES/V9/Server/bin/kconsole.sh
手动初始化数据库:
/KingbaseES/V9/Server/bin/initdb -U "system" -W -D "/KingbaseES/V9/data"
[ Writing the uninstaller data ... ]
[ 命令行安装完成 ]

命令行模式到这就安装结束了,说实话安装过程十分麻烦(吐槽:光是许可协议输出就一堆),不建议使用这种方式。

静默安装(非常建议)

静默安装我感觉是最方便的,只需要配置参数文件之后,一条命令即可完成安装。

静默安装模式下,安装程序通过读取配置文件来安装数据库。安装包 iso 文件挂载后,setup 目录下已存在 silent.cfg 模板文件,需要根据实际安装机器的情况修改参数值。

配置文件的参数可参考:

参数名 默认值 说明
INSTALL_PATH /opt/Kingbase/ES/V9 安装目录绝对路径,必须指定,否则报错退出安装过程。路径分隔符使用/‘。
LICENSE_PATH 授权文件的绝对路径,如果指定该参数,就会选择用户指定的license文件;如果未指定,则会使用软件自带试用版授权,请在有效期内及时更换正式授权文件。
COMPONENTS Server,Interface, KingbaseHA, KStudio,KDTS, DeployTool 1) SERVER,服务器
2) INTERFACE,接口
3) KINGBASEHA,高可用组件
4) KSTUDIO,数据库开发管理工具
5) KDTS,数据库迁移工具
6) DEPLOY,数据库部署工具
多值用逗号分隔。大小写不敏感。如果是错误的组件名称则忽略。
CREATE_SHORTCUT yes 是否创建创建方式,yes:创建;no:不创建
SHORTCUT_USER 1 用户范围,1:当前用户;2:所有用户
SHORTCUT_GROUP_NAME KingbaseES V009R001 快捷方式组名,默认:KingbaseESV009R001

查看默认的配置参数文件内容:

1
2
3
4
5
6
7
[kingbase@kesv9:/install]$ grep -v "^\s*\(#\|$\)" /install/setup/silent.cfg 
INSTALL_PATH=/opt/Kingbase/ES/V9
LICENSE_PATH=
COMPONENTS=Server,Interface,KingbaseHA,DeployTool,KDTS,KStudio
CREATE_SHORTCUT=yes
SHORTCUT_USER=1
SHORTCUT_GROUP_NAME=KingbaseESV009R001

根据需求修改对应的参数值:

1
2
3
[kingbase@kesv9:/install]$ vi /install/setup/silent.cfg
## 修改以下内容
INSTALL_PATH=/KingbaseES/V9

修改后的配置文件内容:

1
2
3
4
5
6
7
[kingbase@kesv9:/install]$ grep -v "^\s*\(#\|$\)" /install/setup/silent.cfg 
INSTALL_PATH=/KingbaseES/V9
LICENSE_PATH=
COMPONENTS=Server,Interface,KingbaseHA,DeployTool,KDTS,KStudio
CREATE_SHORTCUT=yes
SHORTCUT_USER=1
SHORTCUT_GROUP_NAME=KingbaseESV009R001

修改完配置文件后,进入安装程序所在目录,以 kingbase 用户执行如下命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
## -f 参数指定修改后配置文件的相对或绝对路径,相对路径是指相对 setup/silent.cfg 的相对路径。
[kingbase@kesv9:/install]$ ./setup.sh -i silent -f /install/setup/silent.cfg
Java Version: 1.8.0_312
Now launch installer...
Command line arguments: -options /install/setup/silent.cfg -language chn
====
开始安装
架构: 6.0.0-SNAPSHOT-b32da3 (kInstaller)
平台: linux,version=4.19.90-52.22.v2207.ky10.x86_64,arch=x64,symbolicName=null,javaVersion=1.8.0_312
[ Starting to unpack ]
[ Processing package: install (1/9) ]
[ Processing package: doc (2/9) ]
[ Processing package: Suptools (3/9) ]
[ Processing package: Server (4/9) ]
[ Processing package: KingbaseHA (5/9) ]
[ Processing package: Interface (6/9) ]
[ Processing package: DeployTool (7/9) ]
[ Processing package: KDTS (8/9) ]
[ Processing package: KStudio (9/9) ]
[ Unpacking finished ]
安装完成
[ Starting processing ]
Starting process modifyexecute (1/3)
Starting process modifyFiles (2/3)
The beginning of Repair File Contents.
Running modifyFilesValue.sh...
Repair deploy.ini...Complete.
Repair File Contents Finish.


Starting process packtools (3/3)
安装成功 100%
[ Writing the uninstaller data ... ]
[ 命令行安装完成 ]

安装完成。

初始化实例

新版本需要使用 Kconsole 进行初始化数据库实例(需要图形化界面):

高级配置:

数据库实例创建完成。

当然,也还是可以使用 initdb 来创建数据库实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
kingbase@kesv9:/home/kingbase]$ initdb --help
initdb 初始化一个 Kingbase 数据库簇.

使用方法:
initdb [选项]... [DATADIR]

选项:
-A, --auth=METHOD 本地连接的默认身份验证方法
--auth-host=METHOD 本地 TCP/IP 连接的默认身份验证方法
--auth-local=METHOD 本地套接字连接的默认身份验证方法
-c, --config-protect 启用加密的配置文件,默认值为 false
[-D, --kingbase_data=]DATADIR 此数据库集群的位置
-E, --encoding=ENCODING 为新数据库设置默认编码
-g, --allow-group-access 允许组读取/执行数据目录
--locale=LOCALE 为新数据库设置默认区域设置
--lc-collate=LOCALE, --lc-ctype=LOCALE, --lc-messages=LOCALE
--lc-monetary=LOCALE, --lc-numeric=LOCALE, --lc-time=LOCALE
在相应的类别中为设置默认语言环境
新数据库(默认从环境中获取)
--no-locale 等效于 --locale=C
--enable-ci 使用不区分大小写初始化数据库集群
--enable-file-checksums 初始化数据库集群,启用校验数据文件md5
--pwfile=FILE 从文件中读取新超级用户的密码
-T, --text-search-config=CFG
缺省文本搜索配置
-U, --username=NAME 数据库超级用户名
-W, --pwprompt 提示输入新超级用户的密码
-X, --waldir=WALDIR 预写日志目录的位置
--wal-segsize=SIZE WAL 段的大小,以兆字节为单位
-m, --dbmode=MODE 设置数据库模式(缺省值为 oracle)
-e, --encrypt-algorithm=METHOD 指定加密方法
--encrypt-device-lib=DEVLIB 指定加密设备lib
--encrypt-driver-lib=DRVLIB 指定加密驱动lib
--encrypt-maxkey-len=KEYLEN 指定加密密钥的最大len
--encrypt-align-num=ALIGN 指定加密对齐编号
-t, --aud-tblspc-enc 启用系统审计表空间加密
-K, --enckey=KEY 指定系统审核表加密密钥
-M, --passwordcheck 为 initdb 启用用户密码检查
-I, --identity-pwdexp 启用用户密码过期检查
--ssoname=NAME 数据库安全性管理员
--saoname=NAME 数据库审计管理员
--init-audit-rules 启动初始化审计规则
--block-size=SIZE 以 kB 为单位设置表块大小,默认为8kB
--segment-size=SIZE 以MB为单位设置数据文件段大小

非普通使用选项:
-d, --debug 生成大量调试输出
-k, --data-checksums 使用数据页校验和
-a, --checksum-algorithm=ALOGRITHM
指定页面校验和算法,crc, sm3或sm3_hmac
-h, --hmac-key = KEY
指定 hmac KEY,64 字节 ASCII 字符串.校验和 算法必须是sm3_hmac
-L DIRECTORY 在何处查找输入文件
-n, --no-clean 出错后不清理
-N, --no-sync 不要等待更改安全地写入磁盘
-s, --show 显示内部设置
--sync-method=METHOD 显示内部设置
-S, --sync-only 仅同步数据目录

其它选项:
-V, --version 输出版本信息, 然后退出
-?, --help 显示此帮助信息, 然后退出

如果没有指定数据目录, 将使用环境变量 KINGBASE_DATA

报告错误至 <kingbase-bugs@kingbase.com.cn>.

这里不过多演示。

连接测试

连接 KES 数据库,查看版本信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[kingbase@kesv9:/home/kingbase]$ kingbase -V
kingbase (KingbaseES) V009R001C010
[kingbase@kesv9:/home/kingbase]$ ksql test system
授权类型: 企业版.
输入 "help" 来获取帮助信息.

test=# select version();
version
-------------------------
KingbaseES V009R001C010
(1 行记录)

test=# show database_mode;
database_mode
---------------
oracle
(1 行记录)

KES 卸载

安装学会了,自然也要知道如何卸载 KES,卸载一般都很简单。

使用静默方式进行卸载(kingbase 用户执行):

1
2
3
4
5
6
7
8
9
10
## 进入安装目录下的 Uninstall 目录下执行
[kingbase@kesv9:/install]$ cd /KingbaseES/V9/Uninstaller/
## 如果是通过静默安装方式安装的,可以不加 -i 参数,否则必须附加 -i 参数
kingbase@kesv9:/KingbaseES/V9/Uninstaller]$ ./startUninstall.sh -i silent
java version "1.8.0_92"
Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)

The uninstaller has put a log file: /tmp/kinstaller669521931819492759.log
Uninstaller is launching...

卸载过程没有提示信息,等待卸载过程完成即可。

📢 注意:对于初始化生成的文件或程序运行中生成的文件,卸载过程当中无法自动删除(这个我认为是非常合理的,卸载软件不删除数据,是为了保护数据),需要再退出卸载程序后手动删除。

KES 常用命令

分享一些 KES 常用运维命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 停止数据库服务
[kingbase@kesv9:/home/kingbase]$ sys_ctl stop -D /data/
等待服务器进程关闭 .... 完成
服务器进程已经关闭
# 启动数据库服务
[kingbase@kesv9:/home/kingbase]$ sys_ctl start -D /data/
等待服务器进程启动 ....2025-08-27 00:52:49.785 CST [86138] LOG: 请尽快配置有效的归档命令做WAL日志文件的归档
2025-08-27 00:52:49.797 CST [86138] LOG: sepapower扩展初始化完成
2025-08-27 00:52:49.807 CST [86138] LOG: 正在启动 KingbaseES V009R001C010
2025-08-27 00:52:49.807 CST [86138] LOG: 正在监听IPv4地址"0.0.0.0",端口 54321
2025-08-27 00:52:49.807 CST [86138] LOG: 正在监听IPv6地址"::",端口 54321
2025-08-27 00:52:49.809 CST [86138] LOG: 在Unix套接字 "/tmp/.s.KINGBASE.54321"上侦听
2025-08-27 00:52:49.916 CST [86138] LOG: 日志输出重定向到日志收集进程
2025-08-27 00:52:49.916 CST [86138] HINT: 后续的日志输出将出现在目录 "/data/sys_log"中.
完成
服务器进程已经启动
# 查看数据库进程
[kingbase@kesv9:/home/kingbase]$ ps -ef | grep kingbase: | grep -v grep
kingbase 85991 85989 0 00:49 ? 00:00:00 kingbase: kes: logger
kingbase 85993 85989 0 00:49 ? 00:00:00 kingbase: kes: checkpointer
kingbase 85994 85989 0 00:49 ? 00:00:00 kingbase: kes: background writer
kingbase 85995 85989 0 00:49 ? 00:00:00 kingbase: kes: walwriter
kingbase 85996 85989 0 00:49 ? 00:00:00 kingbase: kes: autovacuum launcher
kingbase 85997 85989 0 00:49 ? 00:00:00 kingbase: kes: archiver
kingbase 85998 85989 0 00:49 ? 00:00:00 kingbase: kes: stats collector
kingbase 85999 85989 0 00:49 ? 00:00:00 kingbase: kes: kwr collector
kingbase 86000 85989 0 00:49 ? 00:00:00 kingbase: kes: ksh writer
kingbase 86001 85989 0 00:49 ? 00:00:00 kingbase: kes: ksh collector
kingbase 86002 85989 0 00:49 ? 00:00:00 kingbase: kes: logical replication launcher

今天的分享到这结束,如果有好的建议或者错误请留言,我会及时纠正,谢谢。