一、KingbaseES V9单机静默安装原理与核心配置
1.1 静默模式概述
静默安装通过预定义配置文件(silent.cfg)实现无人值守部署,适用于批量环境或自动化运维场景。安装包挂载后,需从setup目录复制模板文件至可写路径修改关键参数,避免因ISO只读属性导致配置失败。
1.2 核心参数配置
参数名 | 说明 | 默认值 | 可选值 |
CHOSEN_INSTALL_SET | 安装模式 | Full | Full、Client、Custom |
USER_INSTALL_DIR | 安装目录 | /opt/Kingbase/ES/V9 | 自定义路径(需绝对路径) |
KB_LICENSE_PATH | 许可证路径 | 无 | 如/home/kingbase/license.dat |
USER_SELECTED_DATA_FOLDER | 数据库数据目录 | /opt/Kingbase/ES/V9/data | 自定义路径(需绝对路径) |
DB_PORT | 数据库端口 | 54321 | 1-65535 有效端口 |
DB_USER | 管理员用户名 | system | 长度≤63字节 |
ENCODING_PARAM | 字符集编码 | UTF8 | UTF8, GBK, GB18030, GB2312 |
DATABASE_MODE_PARAM | 数据库兼容模式 | ORACLE | ORACLE, PG, MySQL |
注意事项:
- 修改silent.cfg后需验证参数有效性(如路径是否存在、端口是否占用)。
- 若选择Custom安装模式,需通过CHOSEN_FEATURE_LIST指定组件(如SERVER,KSTUDIO,KDTS,INTERFACE,DEPLOY,KINGBASEHA)。
二、Linux环境部署全流程
2.1 前置环境准备
# 创建用户组与用户(需root权限)
groupadd dba -g 3000
useradd kingbase -g dba -u 3001
echo "kingbase123" | passwd --stdin kingbase
# 创建目录并赋权
mkdir -p /opt/Kingbase/ES/V9/kingbase /home/kingbase/{data,archivelog,backup}
chown -R kingbase:dba /opt/Kingbase /home/kingbase
# 挂载ISO镜像
mount -t iso9660 -o loop KingbaseES_V009R001C002B0014_Lin64_install.iso /mnt/iso
# 关闭防火墙与SELinux
systemctl stop firewalld && systemctl disable firewalld
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
setenforce 0
# 配置内核参数(/etc/security/limits.conf)
cat>>/etc/security/limits.conf<<EOF
kingbase soft nofile 1048576
kingbase hard nofile 1048576
kingbase soft nproc 131072
kingbase hard nproc 131072
kingbase soft stack 10240
kingbase hard stack 32768
kingbase soft core unlimited
kingbase hard core unlimited
EOF
# 修改资源使用参数(/etc/sysctl.conf)
cat>>/etc/sysctl.conf<<EOF
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmall=2097152
kernel.shmmax=17179869184
kernel.shmmni=4096
kernel.sem= 5010 641280 5010 256
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用户下执行,重载配置生效。
sysctl -p
# 修改RemoveIPC 参数
sed -i 's/^#\(RemoveIPC=\).*/\1no/' /etc/systemd/logind.conf
systemctl daemon-reload
systemctl restart systemd-logind.service
2.2 配置文件定制
# 复制并修改silent.cfg(需root权限)
cp /mnt/iso/setup/silent.cfg /home/kingbase/
chown kingbase:dba /home/kingbase/silent.cfg
chmod +w /home/kingbase/silent.cfg
# 使用sed批量修改关键参数
sed -i 's|KB_LICENSE_PATH=.*|KB_LICENSE_PATH=/home/kingbase/license.dat|' /home/kingbase/silent.cfg
sed -i 's|CHOSEN_INSTALL_SET=.*|CHOSEN_INSTALL_SET=Full|' /home/kingbase/silent.cfg
sed -i 's|USER_INSTALL_DIR=.*|USER_INSTALL_DIR=/opt/Kingbase/ES/V9/kingbase|' /home/kingbase/silent.cfg
sed -i 's|USER_SELECTED_DATA_FOLDER=.*|USER_SELECTED_DATA_FOLDER=/home/kingbase/data|' /home/kingbase/silent.cfg
sed -i 's|DB_PORT=.*|DB_PORT=54321|' /home/kingbase/silent.cfg
sed -i 's|DB_USER=.*|DB_USER=system|' /home/kingbase/silent.cfg
sed -i 's|DB_PASS=.*|DB_PASS=kingbase123|' /home/kingbase/silent.cfg
sed -i 's|DB_PASS2=.*|DB_PASS2=kingbase123|' /home/kingbase/silent.cfg
sed -i 's|ENCODING_PARAM=.*|ENCODING_PARAM=UTF8|' /home/kingbase/silent.cfg
sed -i 's|LOCALE_PARAM=.*|LOCALE_PARAM=zh_CN.UTF-8|' /home/kingbase/silent.cfg
sed -i 's|DATABASE_MODE_PARAM=.*|DATABASE_MODE_PARAM=ORACLE|' /home/kingbase/silent.cfg
sed -i 's|CASE_SENSITIVE_PARAM=.*|CASE_SENSITIVE_PARAM=YES|' /home/kingbase/silent.cfg
sed -i 's|BLOCK_SIZE_PARAM=.*|BLOCK_SIZE_PARAM=8k|' /home/kingbase/silent.cfg
sed -i 's|AUTHENTICATION_METHOD_PARAM=.*|AUTHENTICATION_METHOD_PARAM=scram-sha-256|' /home/kingbase/silent.cfg
2.3 执行静默安装
# 切换至kingbase用户执行安装
su - kingbase
cd /mnt/iso
./setup.sh -i silent -f /home/kingbase/silent.cfg
# 验证安装日志
cat /opt/Kingbase/ES/V9/kingbase/install/Logs/KingbaseES_V9_安装_*.log
成功标志:日志末尾显示 Installation: Successful. 且无错误计数。
注意事项:安装过程涉及两个阶段:
- 安装程序(二进制程序),包括KingbaseES数据库服务端或客户端等软件组件。
- 系统的初始化,使用initdb命令初始化磁盘上的数据存储区,创建数据库集簇。
如果安装不成功,重新安装前请清空相关目录。
2.4 开机自启动(可选)
# 注册系统服务(需root权限)
/opt/Kingbase/ES/V9/kingbase/install/script/root.sh
三、KingbaseES 功能解析
3.1 核心工具目录结构
目录 | 功能 | 描述 |
Server | 对应目录存放了服务器二进制文件,链接文件等。 | Server\bin:服务器二进制文件,可以在该路径下进行启动服务,连接数据库,物理备份还原,逻辑备份还原等操作。 |
Data | 初始化生成的data文件,存放了数据库参数配置相关信息。 | 包括以下配置文件:initdb.conf、kingbase.auto.conf、kingbase.conf、sys_hba.conf、sys_ident.conf |
license.dat | 指向安装时使用的认证许可证书。 | |
ClientTools | 客户端安装时所需的命令行,可执行二进制文件,链接文件等。 | ClientTools\guitools\KStudio:开发管理工具,能运行在各种平台的图形工具,用于管理和配置KingbaseES数据库服务器,管理各种KingbaseES数据库对象,进行KingbaseES数据库的安全管理,调用查询分析器执行和测试SQL语句。 ClientTools\guitools\KDts:数据库迁移工具,可以用于跨平台数据交换和迁移,支持同异构数据源之间的数据迁移。该目录下存放了迁移工具的相关程序和配置文件。 ClientTools\guitools\DeployTools:集群部署工具,用于远程部署集群节点服务。该目录存放了集群部署工具相关的程序和配置文件。 |
SupTools | 巡检工具相关脚本和配置文件 | 系统数据与日志收集工具(kb_gathertool)、问题诊断辅助工具(kb_diagtool)、辅助运维工具(kb_modify_syscfg、kb_check、kb_backup)。 |
Interface | 开发接口 | JDBC、ODBC、Python驱动等 |
KingbaseHA | 搭建Clusterware集群工具 | |
doc | 官方文档与帮助手册 | |
Uninstall | 卸载脚本与依赖文件 | |
install | 安装过程中依赖和使用的各类文件 | install\jre:Jre,存放了java工具需要用到的二进制文件。 install\script:该目录下存放了数据库初始化脚本,包括initdb.bat,register.bat,sysctl.bat,unregister.bat,vcredist_x64.exe等。 install\Logs:日志目录,存放了数据库安装,卸载,修改实例等日志文件。 install\LICENSE.EN:许可协议(英文) install\LICENSE.ZH:许可协议(中文) |
3.2 客户端工具
- KStudio:图形化数据库管理(对象管理、SQL调试、权限配置)。
- KDts:异构数据库迁移(支持Oracle/MySQL到KingbaseES数据同步)。
- deploy:KingbaseES数据库集群部署工具。
四、用户环境变量配置
# 编辑用户环境变量(~/.bashrc)
export KINGBASE_HOME=/opt/Kingbase/ES/V9/kingbase
export PATH=$KINGBASE_HOME/Server/bin:$PATH
export PATH=$KINGBASE_HOME/ClientTools/bin:$PATH
export PATH=$KINGBASE_HOME/ClientTools/guitools/KStudio:$PATH
export PATH=$KINGBASE_HOME/ClientTools/guitools/DeployTools:$PATH
export PATH=$KINGBASE_HOME/ClientTools/guitools/KDts:$PATH
export LD_LIBRARY_PATH=$KINGBASE_HOME/Server/lib:$LD_LIBRARY_PATH
export KINGBASE_DATA=/home/kingbase/data
export KINGBASE_PORT=54321
# 立即生效
source ~/.bashrc
# 连接数据库示例
五、配置文件管理
KingbaseES主服务器的配置主要通过修改配置文件 kingbase.conf 完成。而配置文件 sys_hba.conf 和 sys_ident.conf 主要用于控制强身份验证 。当数据库集簇目录被初始化时,上述三个配置文件将被默认拷贝在数据目录中。
5.1 优先级说明
- kingbase.auto.conf 优先级高于 kingbase.conf。
- 动态修改参数:
ALTER SYSTEM SET wal_level = replica; -- 写入kingbase.auto.conf
5.2 身份验证配置
- sys_hba.conf:控制客户端IP、用户、数据库的访问权限。
- sys_ident.conf:定义用户名映射规则。
六、KingbaseES V9数据库简单运维
6.1使用kingbase工具sys_ctl 管理kingbaseES数据库启停
1.启动数据库
通过sys_ctl命令启动数据库
sys_ctl -w start -D $KINGBASE_DATA -l $KINGBASE_DATA/sys_log/startup.log
waiting for server to start.... done
server started
2.关闭数据库
通过sys_ctl –D data路径 stop命令关闭数据库,如下:
sys_ctl -D $KINGBASE_DATA stop
或者
sys_ctl stop -m fast -w -D $KINGBASE_DATA
waiting for server to shut down.... done
server stopped
参数说明:
- smart:等所有连接中止后才关闭
- fast(默认方式):断开客户端连接、回事务、正常关闭数据库
- immediate:立即关闭,下次启动要进行恢复。相当于0racle的shutdown abort
- fast:最常用的方式,相当于0racle的shutdown immediate
3.重启数据库
通过sys_ctl –D data路径 restart重启数据库,如下:
sys_ctl -D $KINGBASE_DATA restart
4.查看相关进程
ps -axf | head -1;ps -axf|grep kingbase | grep -v 'grep\|sshd'
PID TTY STAT TIME COMMAND
1216 ? Ss 0:00 sys_securecmdd: /opt/Kingbase/ES/V9/kingbase/bin/sys_securecmdd -f /opt/kes/etc/securecmdd_config [listener] 0 of 128-256 startups
8004 ? Ssl 0:00 /opt/Kingbase/ES/V9/kingbase/KESRealPro/V009R001C002B0014/Server/bin/kingbase -D /home/kingbase/data
8006 ? Ss 0:00 \_ kingbase: logger
8008 ? Ss 0:00 \_ kingbase: checkpointer
8009 ? Ss 0:00 \_ kingbase: background writer
8010 ? Ss 0:00 \_ kingbase: walwriter
8011 ? Ss 0:00 \_ kingbase: autovacuum launcher
8012 ? Ss 0:00 \_ kingbase: archiver last was 000000010000000000000004
8013 ? Ss 0:04 \_ kingbase: stats collector
8014 ? Ss 0:00 \_ kingbase: kwr collector
8015 ? Ss 0:03 \_ kingbase: ksh writer
8017 ? Ss 0:02 \_ kingbase: ksh collector
8018 ? Ss 0:00 \_ kingbase: logical replication launcher
此外如果注册了kingbased服务到系统,可以使用systemctl、service命令管理KES服务。
七、总结
通过静默安装可快速完成企业级部署,建议结合Ansible实现批量自动化。
附录:完整参数表,重点关注CHOSEN_INSTALL_SET、DB_PORT、AUTHENTICATION_METHOD_PARAM等。
Install配置文件参数说明
序号 | 参数名 | 默认值 | 说明 |
---|---|---|---|
1 | CHOSEN_INSTALL _SET | Full | 选择安装集,可选值包括: 1)Full,完全安装 2)Client,客户端安装 3)Custom,定制安装 |
2 | CHOSEN_FEATURE _LIST | SERVER,MANAGER, KDTS,DEPLOY, INTERFACE, KINGBASEHA | 选择安装特性,CHOSEN_INSTALL_SET=Custom起作用。可选值: 1)SERVER,服务器 2)KSTUDIO,数据库开发管理工具 3)KDTS,数据库迁移工具 4)DEPLOY,数据库部署工具 5)INTERFACE,接口 6)KINGBASEHA,高可用组件 多值用逗号分隔。大小写不敏感。如果是错误的组件名称则忽略。 |
3 | KB_LICENSE_PATH | 授权文件的绝对路径,如果指定该参数,就会选择用户指定的 license文件;如果未指定,则会使用软件自带试用版授权, 请在有效期内及时更换正式授权文件。 | |
4 | USER_INSTALL_DIR | /opt/Kingbase/ES/V9 | 安装目录绝对路径,必须指定,否则报错退出安装过程。 路径分隔符使用'/'。 |
5 | USER_SELECTED _DATA_FOLDER | 数据目录绝对路径,必须为空目录,否则报错退出安装过程。 如果不指定数据目录,默认为安装路径下data目录。 | |
6 | DB_PORT | 54321 | 数据库服务端口,必填,端口取值范围为1-65535。 否则报错退出安装过程。 |
7 | DB_USER | system | 数据库默认用户名,必填,长度不超过63字符。 否则报错退出安装过程。 |
8 | DB_PASS | 数据库初始密码,必填,否则报错退出安装过程。无长度限制。 | |
9 | DB_PASS2 | 确认数据库初始密码,需要和DB_PASS一致,否则报错退出安装过程。 | |
10 | ENCODING_PARAM | UTF8 | 数据库字符集,必填,大小写敏感,否则报错退出安装过程。可选值 1) default 2)UTF8 3)GBK 4)GB2312 5)GB18030 |
11 | DATABASE_MODE _PARAM | ORACLE | 数据库兼容模式,必填,大小写敏感,否则报错退出安装过程。 可选值1)ORACLE 2)PG 3) MySQL |
12 | LOCALE_PARAM | 当字符集编码为 default 时,默认区域值为:default(可选 C) 当字符集编码为 UTF8 时,默认区域值为:zh_CN.UTF-8 (可选 en_US.UTF-8、C) 当字符集编码为GBK 时,默认区域值为:zh_CN.GBK(可选 C) 当字符集编码为GB2312时,默认区域值为:zh_CN.GB2312(可选 C) 当字符集编码为GB18030时,默认区域值为:zh_CN.GB18030(可选 C) | |
13 | CASE_SENSITIVE _PARAM | YES | 数据库是否区分大小写,必填,大小写敏感,否则报错退出安装过 程。可选值1)YES 2)NO |
14 | BLOCK_SIZE _PARAM | 8k | 存储块大小,必填,大小写敏感,否则报错退出安装过程。可选值 1)8k 2)16k 3)32k |
15 | AUTHENTICATION_ METHOD_PARAM | scram-sha-256 | 默认身份认证方法为scram-sha-256(可选 scram-sm3,sm4,sm3) |
16 | INITCUSTOM | 自定义参数,作为初始化数据库的参数,选填 注意:输入的参数值不能包含-W,--pwprompt,%和$。 如果输入的参数值包含-c,则启动数据库将使用默认端口值54321。 |