一、简介

人大金仓数据库KingbaseES简称KES是一款国产数据库,具有开发板、标准版、专业版和企业版,目前版本有V8R3、V8R6和V9R1,支持单机部署和集群部署。

  • 安装包和授权文件下载地址: https://www.kingbase.com.cn/xzzx/index.htm
  • 官方帮助文档: https://bbs.kingbase.com.cn/documentGuide?recId=d16e9a1be637c8fe4644c2c82fe16444

二、KingbaseES V9 安装前准备

2.1 硬件要求:

KingbaseES 支持通用 X86_64、龙芯、飞腾、鲲鹏等国产 CPU 硬件体系架构。

image-20241024161614289

2.2 软件环境要求:

KingbaseES 支持各种主流的 Linux 操作系统 64 位发行版本,包括 CentOS、中标麒麟、银河麒麟、统信 UOS、Deepin、凝思、中科方德、欧拉等操作系统。

2.3 资源规划

服务器配置 CPU 操作系统 IP地址
8核16g100G X86 Intel(R) Xeon(R) Silver 4214 CPU @ 2.20GHz openEuler 22.03 (LTS-SP4) 172.22.33.205
软件名称 CPU 类型 数据目录
KingbaseES_V009R001C001B0030_Lin64 X86 完整版 安装目录: /home/application/kingbase
数据目录: /home/application/kingbase/data

2.4 安装包和授权文件准备

  • 安装包和授权文件下载地址: https://www.kingbase.com.cn/xzzx/index.htm

⚠️: 授权文件版本之间存在差异,下载合适的授权版本;我这里以专业版进行演示

image-20241024162338601

image-20241024162634889

2.5 检查和配置环境

  • 挂载磁盘,创建分区,指定数据目录
#格式化磁盘
mkfs.ext4 /dev/sdb

#创建挂载目录
mkdir -p /home/application

#配置开机挂载
vim /etc/fstab
....
/dev/sdb /home/application ext4 defaults 0 0


#挂载磁盘
mount -a

#查看磁盘挂载
df -h
  • 关闭SELINUX
setenforce 0
sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config 
  • 关闭firewalld
systemctl stop firewalld
systemctl disable firewalld
  • 修改系统资源限制参数
cat >> /etc/security/limits.conf << eof
root soft nofile 65535
root hard nofile 65535
root soft nproc 65535
root hard nproc 65535
root soft core unlimited
root hard core unlimited
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
* soft core unlimited
* hard core unlimited
eof


#进入到/etc/security/limits.d/下,删除 *-nproc.conf
cd /etc/security/limits.d/
rm -rf  *-nproc.conf
  • 配置内核参数
cat >>/etc/sysctl.conf<<'EOF'
kernel.sem = 50100 64128000 50100 1280
fs.aio-max-nr = 1048576
fs.file-max = 6815744
vm.swappiness = 1
vm.overcommit_memory = 2
vm.overcommit_ratio=90
vm.dirty_ratio =2
vm.dirty_background_ratio=1
vm.min_free_kbytes = 512000
kernel.shmall = 1572864
kernel.shmmax = 6442450944
kernel.shmmni = 4096
net.ipv4.ip_local_port_range = 10000 65000
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.core.somaxconn=1024
net.core.netdev_max_backlog = 32768
net.core.wmem_default = 8388608
net.core.wmem_max = 16777216
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.tcp_max_syn_backlog = 65536
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_wmem = 8192 436600 873200
net.ipv4.tcp_rmem = 32768 436600 873200
net.ipv4.tcp_mem = 94500000 91500000 92700000
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
EOF

#使内核生效
sysctl -p
  • 配置时区
#设置时区
timedatectl set-timezone Asia/Shanghai

三、静默安装KingbaseES V9

3.1 创建kingbase用户并设置密码

useradd kingbase && echo "srebro@2024" | passwd --stdin "kingbase" &>/dev/null

3.2 创建kingbase安装目录&数据目录

KingbaseES 默认的安装目录是/opt/Kingbase/ES/V9。如果不存在,您需要使用 root 用户先创建该目录,并赋

予 kingbase 用户对该目录的读写权限; 这里我们根据磁盘挂载,自定义安装路径;

#创建安装目录
mkdir -p /home/application/kingbase

#创建数据目录
mkdir -p /home/application/kingbase/data

3.3 授权kingbase用户对安装目录&数据目录权限

chown -Rf kingbase:kingbase /home/application/kingbase

3.4 配置环境变量

vim /etc/profile
.........
export KINGBASE_HOME=/home/application/kingbase
export KINGBASE_DATA=$KINGBASE_HOME/data
export LD_LIBRARY_PATH=$KINGBASE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$KINGBASE_HOME/Server/bin:$PATH:$HOME/bin

#使环境变量生效
source /etc/profile

3.5 授权文件上传&安装包挂载

  • 切换到kingbase用户下
  su - kingbase
  • 上传安装包和授权文件到/home/kingbase 目录下
ls -l /home/kingbase/
总用量 8
-rw-r--r-- 1 kingbase kingbase 2739 10月 24 10:15 license_专业版.zip
-r--r--r-- 1 root root 2039 10月 24 17:07  KingbaseES_V009R001C001B0030_Lin64_install.iso
  • 解压授权文件
#解压授权文件
unzip license_专业版.zip

ls -l /home/kingbase/
总用量 8
drwxrwxr-x 2 kingbase kingbase 4096  6月 24 17:07 license_41249
-rw-r--r-- 1 kingbase kingbase 2739 10月 24 10:15 license_专业版.zip
-r--r--r-- 1 root root 2039 10月 24 17:07  KingbaseES_V009R001C001B0030_Lin64_install.iso

#移动授权文件到 /home/kingbase/ 目录下
mv license_41249/license_41249_0.dat  /home/kingbase/

#删除旧文件
rm -rf  /home/kingbase/license_专业版.zip  /home/kingbase/license_41249

ls -l /home/kingbase/
总用量 8
-rw-rw-r-- 1 kingbase kingbase 3676  6月 24 17:07 license_41249_0.dat
-r--r--r-- 1 root root 2039 10月 24 17:07  KingbaseES_V009R001C001B0030_Lin64_install.iso
  • KingbaseES_V009R001C001B0030_Lin64_install.iso 安装包挂载

下载下来的KingbaseES_V009R001C001B0030_Lin64_install.iso 是一个iso文件,iso 格式的安装程序包需要先挂载才能使用。挂载 iso 文件需要使用 root 用户。

  • 切换到root用户下
#创建安装包挂载目录
mkdir /kingbase

#挂载软件包
mount KingbaseES_V009R001C001B0030_Lin64_install.iso  /kingbase

#查看安装包下面目录结构
tree /kingbase
/kingbase
├── setup
│   ├── install.bin
│   ├── MD5
│   ├── silent.cfg    #静默安装配置文件
│   └── WenQuanDengKuanZhengHei-1.ttf
└── setup.sh      #图形化安装./setup.sh或加参数-i swing;命令行安装./setup.sh -i console

1 directory, 5 files

说明:安装方式有图形化安装、命令行安装和静默安装。这里我选择了静默安装的方式。

3.6 编写静默安装脚本

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

  • 配置文件说明:

image-20241024173313227

image-20241024173329721

  • 切换到kingbase用户下
  su - kingbase
  • 编辑静默安装脚本
cat >  /home/kingbase/silent.cfg <<'EOF'
#指定授权文件路径
KB_LICENSE_PATH=/home/kingbase/license_41249_0.dat
#安装类型 Full, Client, Custom
CHOSEN_INSTALL_SET=Full
#安装组件SERVER, KSTUDIO, KDTS, INTERFACE, DEPLOY, KINGBASEHA
CHOSEN_FEATURE_LIST=SERVER,KSTUDIO,KDTS,INTERFACE,DEPLOY,KINGBASEHA
#安装路径
USER_INSTALL_DIR=/home/application/kingbase
#数据目录
USER_SELECTED_DATA_FOLDER=/home/application/kingbase/data
#数据库端口
DB_PORT=54321
#数据库用户
DB_USER=system
#数据库用户密码
DB_PASS=srebro@2024
#数据库用户密码确认
DB_PASS2=srebro@2024
#数据库字符集
ENCODING_PARAM=UTF8
LOCALE_PARAM=zh_CN.UTF-8
#兼容数据库类型ORACLE, PG, MySQL
DATABASE_MODE_PARAM=MySQL
#大小写是否敏感YES, NO
CASE_SENSITIVE_PARAM=NO
#块大小 8k, 16k, 32k
BLOCK_SIZE_PARAM=8k
#认证方式scram-sha-256, scram-sm3, sm4, sm3, radius, gss
AUTHENTICATION_METHOD_PARAM=scram-sha-256
EOF

3.7 安装

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

  • 切换到kingbase用户下
  su - kingbase
  • 安装
cd  /kingbase
./setup.sh -i silent -f /home/kingbase/silent.cfg

image-20241024174417210

3.8 查看安装日志,验证是否安装成功

在 ${安装目录}/Logs 目录下,存在名称为”install.log” 的日志文件,其中记录了安装过程的所有信息。可以打开日志文件,查看如下所示安装结果信息判断是否安装正确

cat /home/application/kingbase/install/Logs/KingbaseES_V9_安装_10_24_2024_17_42_29.log

image-20241024175410083

image-20241024175420903

3.9 配置kingbase开机自启动

如果想注册数据库服务为系统服务,您可以在安装并初始化数据库成功后,执行 root.sh 脚本来注册并启动数据库服务,具体步骤如下:

  • 切换到root用户下
  su - root
  • 运行 ${安装目录}/install/script/root.sh
/home/application/kingbase/install/script/root.sh

image-20241024175844796

image-20241024180126296

3.10 手动启动或停止数据库服务

  • 切换到kingbase用户下
su - kingbase
  • 启动数据库服务
sys_ctl start

ss -tlunp | grep 54321

#查看主进程
ps -ef | grep kingbase
  • 停止数据库服务
sys_ctl stop
  • 查看数据库状态
sys_ctl status
sys_ctl: 正在运行服务器进程(PID: 10148)
/home/application/kingbase/KESRealPro/V009R001C001B0030/Server/bin/kingbase "-D" "/home/application/kingbase/data"

3.11 登录测试

  • 切换到kingbase用户下
su - kingbase
  • 使用ksql 命令登录数据库
#登录测试数据是否正常,system的密码,设置的srebro@2024,端口默认54321

ksql -Usystem -d test -p54321

#查看版本
select version();

#退出
\q