Home

人大金仓 KingbaseES 学习 01:V9 单机部署环境准备清单

目标

这一篇我先整理 KingbaseES V9 单机部署前的环境准备清单。

前期试错过程不放进正式稿,只保留后续可以复用的检查项、当前环境状态和待完成配置。

安装介质确认

本次使用的安装介质为:

KingbaseES_V009R001C002B0014_Lin64_install.iso

本地校验值:

MD5:  c2c1af691435d953146222dcd5aa11d5
SHA1: cc8aea1a2897a7d6afbdef51bf28881e8d313b54

ISO 内置静默安装配置中的默认安装目录为:

USER_INSTALL_DIR=/opt/Kingbase/ES/V9

由此确认本次学习和安装对象为 KingbaseES V9。后续路径统一按 V9 处理,不使用旧资料里的 V8 路径。

虚拟机规格

项目当前配置
操作系统Kylin Linux Advanced Server V10 (Lance)
内核4.19.90-52.22.v2207.ky10.x86_64
CPU 架构x86_64
CPU2 核
内存2.6GiB
Swap2GiB
系统盘80G
SELinuxDisabled
firewalldinactive

磁盘与挂载规划

当前磁盘采用 LVM,安装和数据目录单独规划:

示例输出:

sda             80G disk
├─sda1         600M part vfat        /boot/efi
├─sda2           1G part xfs         /boot
└─sda3          74G part LVM2_member
  ├─klas-root   25G lvm  xfs         /
  ├─klas-swap    2G lvm  swap        [SWAP]
  ├─klas-opt    15G lvm  xfs         /opt
  ├─klas-tmp    12G lvm  xfs         /tmp
  └─klas-data   20G lvm  xfs         /data

关键点:

  • /tmp 是独立 XFS LV,容量 12G,满足安装手册中 /tmp 至少 10G 的要求。
  • /opt 是独立 XFS LV,用于安装 KingbaseES 软件。
  • /data 是独立 XFS LV,预留给后续数据库数据目录或备份实验使用。

/tmp 的实际挂载结果:

/dev/mapper/klas-tmp  xfs  12G  119M  12G  1% /tmp

安装前检查清单

检查项要求当前状态
操作系统64 位 Linux,支持国产 Linux已满足
CPU 架构x86_64 或受支持国产 CPU已满足
内存512MB 以上,学习环境建议 2G 以上已满足
磁盘空闲空间11G 以上已满足
/tmp至少 10G已满足,12G
安装目录建议 /opt/Kingbase/ES/V9已创建并授权给 kingbase
数据目录可放在安装目录下,也可独立规划已创建 /data/kingbase
安装用户非 root 用户,建议 kingbase已创建
limits.conf配置 nofilenproccore已配置并验证
RemoveIPC显式设置为 RemoveIPC=no已配置
sysctl按安装手册建议值检查和补齐已配置并验证
ISO 校验对 ISO 做 MD5 或 SHA1 校验已完成

已执行配置

创建安装用户

目的:创建专用 Linux 用户,后续安装程序和数据库进程都使用该用户运行,避免用 root 直接安装和运行数据库。

# 创建带 home 目录的 KingbaseES 专用用户
useradd -m kingbase

本次通过 root 执行 su - kingbase 切换用户,因此没有给 kingbase 单独设置登录密码。如果后续需要让 kingbase 直接登录,再单独执行 passwd kingbase

后续安装程序应使用 kingbase 用户执行,不使用 root 直接安装。

当前已创建:

示例输出:

uid=1000(kingbase) gid=1000(kingbase) groups=1000(kingbase)

创建安装目录

目的:准备软件安装目录,并把目录权限交给 kingbase 用户,保证安装程序能写入 /opt/Kingbase/ES/V9

# 创建 V9 软件安装目录
mkdir -p /opt/Kingbase/ES/V9

# 授权给 KingbaseES 安装用户
chown -R kingbase:kingbase /opt/Kingbase/ES/V9

# 保持目录可进入、可读取,写权限由属主 kingbase 持有
chmod 755 /opt/Kingbase/ES/V9

如果数据库数据目录计划放到 /data,可以提前准备:

# 创建数据库数据目录的父目录
mkdir -p /data/kingbase

# 授权给 KingbaseES 安装用户
chown -R kingbase:kingbase /data/kingbase

# 数据目录只允许属主和属组访问
chmod 750 /data/kingbase

当前目录权限:

示例输出:

drwxr-xr-x 2 kingbase kingbase /opt/Kingbase/ES/V9
drwxr-x--- 2 kingbase kingbase /data/kingbase

配置资源限制

目的:提高 kingbase 用户可打开文件数和可创建进程数,避免数据库运行过程中受默认 shell 限制影响。

建议只针对 kingbase 用户配置,不直接放大所有用户的限制:

# /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

当前 kingbase 用户生效值:

示例输出:

nofile=65536 nproc=65536 core=unlimited

配置 RemoveIPC

目的:避免 kingbase 用户会话退出后,systemd-logind 清理数据库进程正在使用的 IPC 对象。

编辑:

/etc/systemd/logind.conf

确认存在:

RemoveIPC=no

配置后重载:

# 重新加载 systemd 配置
systemctl daemon-reload

# 重启 logind,让 RemoveIPC 配置生效
systemctl restart systemd-logind.service

当前已生效:

示例输出:

RemoveIPC=no
systemd-logind.service active

配置 sysctl

目的:补齐低于安装手册建议值的内核参数。当前系统里部分参数已经高于手册建议值,不需要刻意调低。

# /etc/sysctl.d/99-kingbase.conf
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_max = 4194304

麒麟系统的 /usr/lib/sysctl.d/kylin.conf 会把 net.core.rmem_max 覆盖回 2097152,因此在最后加载的 /etc/sysctl.conf 里增加最终覆盖:

# /etc/sysctl.conf
net.core.rmem_max = 4194304

应用所有 sysctl 配置:

# 按系统加载顺序应用 /usr/lib/sysctl.d、/etc/sysctl.d 和 /etc/sysctl.conf
sysctl --system

当前关键参数:

示例输出:

fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_max = 4194304
kernel.shmmni = 4096

当前进度

当前虚拟机的硬件、系统、磁盘、/tmp/opt/data 规划,以及安装前系统配置已经满足 KingbaseES V9 单机学习环境要求。

下一篇继续上传并挂载安装介质,完成后再使用 kingbase 用户执行 V9 安装程序。

数据库 KingbaseES 人大金仓 Linux 麒麟 技术分享