人大金仓 KingbaseES 学习 01:V9 单机部署环境准备清单
目标
这一篇我先整理 KingbaseES V9 单机部署前的环境准备清单。
前期试错过程不放进正式稿,只保留后续可以复用的检查项、当前环境状态和待完成配置。
安装介质确认
本次使用的安装介质为:
KingbaseES_V009R001C002B0014_Lin64_install.iso本地校验值:
MD5: c2c1af691435d953146222dcd5aa11d5
SHA1: cc8aea1a2897a7d6afbdef51bf28881e8d313b54ISO 内置静默安装配置中的默认安装目录为:
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 |
| CPU | 2 核 |
| 内存 | 2.6GiB |
| Swap | 2GiB |
| 系统盘 | 80G |
| SELinux | Disabled |
| firewalld | inactive |
磁盘与挂载规划
当前磁盘采用 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 | 配置 nofile、nproc、core | 已配置并验证 |
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 安装程序。