人大金仓Kingbase数据库部署体验
一、简介
人大金仓数据库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 硬件体系架构。
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
⚠️: 授权文件版本之间存在差异,下载合适的授权版本;我这里以专业版进行演示
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 模板文件,需要根据实际安装机器的情况修改参数值。
- 配置文件说明:
- 切换到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
3.8 查看安装日志,验证是否安装成功
在 ${安装目录}/Logs 目录下,存在名称为”install.log” 的日志文件,其中记录了安装过程的所有信息。可以打开日志文件,查看如下所示安装结果信息判断是否安装正确
cat /home/application/kingbase/install/Logs/KingbaseES_V9_安装_10_24_2024_17_42_29.log
3.9 配置kingbase开机自启动
如果想注册数据库服务为系统服务,您可以在安装并初始化数据库成功后,执行 root.sh 脚本来注册并启动数据库服务,具体步骤如下:
- 切换到root用户下
su - root
- 运行 ${安装目录}/install/script/root.sh
/home/application/kingbase/install/script/root.sh
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
- 感谢你赐予我前进的力量