注册
麒麟V10操作系统下达梦DM8数据库单机搭建实战指南
专栏/技术分享/ 文章详情 /

麒麟V10操作系统下达梦DM8数据库单机搭建实战指南

DM_WJH 2026/08/21 440 1 0
摘要

从OS环境准备到数据库安装、初始化、归档配置全流程实操记录

操作系统 CPU架构 数据库版本 虚拟机配置
Kylin V10 SP3 x86_64 DM8 8.1.5.8 2C/4G/100G

目录

  1. 环境概述与软件版本
  2. 操作系统环境准备
  3. 磁盘规划与LVM配置
  4. 系统参数优化
  5. 创建数据库用户与组
  6. 数据库软件安装
  7. 数据库实例初始化
  8. 服务注册与启停管理
  9. 开启数据库归档
  10. 安装后配置检查清单
  11. DM8逻辑存储结构概述
  12. 总结

1. 环境概述与软件版本

本文记录了在麒麟V10(Kylin Linux Advanced Server V10 SP3)操作系统上,从零开始搭建达梦DM8数据库单机环境的完整过程。涵盖操作系统环境准备、系统参数优化、数据库软件安装、实例初始化、服务注册、归档配置以及安装后的配置检查。

软件介质

项目 版本/文件名 说明
操作系统ISO Kylin-Server-V10-SP3-2403-Release-20240426-X86_64.iso 4.37 GB,从麒麟官网下载
数据库介质 dm8_20260428_x86_kylin10_sp3_64.iso 需根据OS版本和CPU架构选择对应版本
数据库版本号 dm8_20260428_x86_kylin10_sp3_64_ent_8.1.5.8 企业版

麒麟V10 ISO下载地址:https://www.kylinos.cn/support/trial/download/ ,选择对应架构版本即可。

硬件配置信息

# 操作系统版本 [root@dm-wangjh ~]# cat /etc/os-release PRETTY_NAME="Kylin Linux Advanced Server V10 (Halberd)" # 内核版本 [root@dm-wangjh ~]# uname -r 4.19.90-89.11.v2401.ky10.x86_64 # CPU型号 [root@dm-wangjh ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 2 Intel(R) Core(TM) i5-10210U CPU @ 1.60GHz # 内存 [root@dm-wangjh ~]# free -g total used free shared buff/cache available Mem: 2 0 2 0 0 2 Swap: 7 0 7

2. 操作系统环境准备

数据库安装前的操作系统环境检查与优化是保证数据库稳定运行的基础。以下按照达梦数据库上线规范,逐项进行检查和配置。

2.1 时间同步配置

生产环境必须采用时钟同步方式保证服务器间时间一致。推荐使用 chrony 服务。

# 编辑 chrony 配置 vi /etc/chrony.conf server 10.10.47.245 iburst driftfile /var/lib/chrony/drift makestep 10 3 # 重启并设置开机启动 systemctl restart chronyd.service systemctl enable chronyd.service # 验证时间 date

⚠️ 注意:数据库运行时禁止执行 hwclock -w 写入硬件时钟操作,否则可能导致数据一致性问题。

2.2 关闭防火墙

数据库服务器建议关闭防火墙,或添加端口策略开放数据库监听端口。

# 查看防火墙状态 systemctl status firewalld # 临时关闭 systemctl stop firewalld # 永久关闭(防止自启动) systemctl disable firewalld # 如需开放端口(以5236为例) firewall-cmd --zone=public --add-port=5236/tcp --permanent firewall-cmd --reload

2.3 关闭SELinux

SELinux可能对数据库运行产生不确定影响,建议永久关闭。

# 临时关闭 setenforce 0 # 永久关闭:修改配置文件 sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config # 验证 grep '^SELINUX=' /etc/selinux/config # 输出: SELINUX=disabled

修改永久关闭后必须重启服务器才能生效,且关闭后无法通过 setenforce 1 临时打开。

2.4 关闭NUMA

在麒麟V10系统上,通过修改GRUB引导参数关闭NUMA。

# 1. 查看NUMA状态 cat /proc/sys/vm/zone_reclaim_mode # 0表示已关闭 # 2. 修改GRUB配置,添加 numa=off vi /etc/default/grub # 在 GRUB_CMDLINE_LINUX 行末尾追加 numa=off # 3. 判断是UEFI还是BIOS引导 [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS # 4. 重新生成grub.cfg # BIOS引导执行: grub2-mkconfig -o /boot/grub2/grub.cfg # 5. 重启操作系统 reboot # 6. 验证 cat /proc/cmdline # 输出中应包含 numa=off

2.5 禁用透明大页(THP)

# 1. 查看当前状态 cat /sys/kernel/mm/transparent_hugepage/enabled # [always] madvise never 表示已启用透明大页 # 2. 修改GRUB配置,添加 transparent_hugepage=never vi /etc/default/grub # GRUB_CMDLINE_LINUX 行末尾追加 transparent_hugepage=never # 3. 重新生成grub.cfg并重启 grub2-mkconfig -o /boot/grub2/grub.cfg reboot # 4. 验证(重启后) cat /sys/kernel/mm/transparent_hugepage/enabled # always madvise [never] 表示已禁用透明大页

2.6 关闭Swap分区

数据库系统对响应延迟敏感,使用Swap代替内存会导致性能不可接受。内存充裕时(128G以上)建议直接关闭。

# 临时关闭 swapoff -a # 永久关闭:注释fstab中的swap行 sed -ri 's/.*swap.*/#&/' /etc/fstab # 重启生效后确认 free -m

2.7 设置RemoveIPC参数(麒麟V10特有)

麒麟V10 SP1需要检查并设置 RemoveIPC=no,否则可能导致数据库用户的IPC资源被清理。

# 检查 systemctl show systemd-logind | grep -i removeipc # 修改 /etc/systemd/logind.conf vi /etc/systemd/logind.conf # 去掉#注释,将 RemoveIPC=yes 改为 RemoveIPC=no # 重启服务 systemctl daemon-reload systemctl restart systemd-logind # 确认 systemctl show systemd-logind | grep -i removeipc # RemoveIPC=no

2.8 安装系统工具包

为方便后期运维问题分析,建议安装以下工具包:

yum install -y sysstat perf gdb strace tar nc telnet net-tools \ libaio libaio-devel tcpdump traceroute unixODBC unixODBC-devel \ java vim nmon iotop ethtool

2.9 配置PAM登录

确保 limits.conf 配置能被PAM模块正确加载:

vi /etc/pam.d/login # 添加以下两行: session required /lib64/security/pam_limits.so session required pam_limits.so

3. 磁盘规划与LVM配置

3.1 磁盘布局规划

数据库的归档、备份和数据应分开存储,避免磁盘写入冲突,便于监控空间,减少误删风险。

挂载点 用途 文件系统 说明
/dm8 数据库软件及数据 xfs 独立LVM逻辑卷
/dm8/arch 归档日志 xfs 建议与数据分盘
NAS/独立盘 备份文件 - 建议异地备份

⚠️ 重要:不要将数据库SQLLOG、归档等文件放在NAS盘进行写入。备份文件可存放到NAS实现异地备份。

3.2 LVM创建与挂载

# 创建物理卷 pvcreate /dev/sdb # 创建卷组 vgcreate data_vg /dev/sdb # 创建逻辑卷(使用全部VG空间) lvcreate -l 100%VG -n lv_data1 data_vg # 格式化为xfs mkfs -t xfs /dev/mapper/data_vg-lv_data1 # 创建挂载点并挂载 mkdir /dm8 mount /dev/mapper/data_vg-lv_data1 /dm8 # 确认 df -h /dm8

3.3 配置开机自动挂载

使用UUID方式挂载,避免设备名变化导致挂载失败:

# 获取UUID blkid /dev/mapper/data_vg-lv_data1 # UUID="b39ca1b5-cf3a-4251-af86-b026d6054ff7" TYPE="xfs" # 写入fstab vi /etc/fstab # 添加: # UUID=b39ca1b5-cf3a-4251-af86-b026d6054ff7 /dm8 xfs defaults 0 0 # 验证挂载配置 mount -a

3.4 磁盘I/O性能测试

模拟数据库小数据读写来测试磁盘IO性能:

dd if=/dev/zero of=test bs=8k count=4k oflag=dsync dd if=/dev/zero of=test bs=16k count=4k oflag=dsync dd if=/dev/zero of=test bs=32k count=4k oflag=dsync

⚠️ 注意:IO速度低于 20-30 MB/s 时需要发风险告知书给用户。上云项目可使用 fio 工具进行更严格的随机读写测试,要求随机读写带宽 ≥ 1GB/s(IOPS ≥ 32000)。

3.5 磁盘调度算法

生产环境建议将I/O调度算法设置为 deadline

# 查看当前调度算法 cat /sys/block/sdb/queue/scheduler # [mq-deadline] kyber bfq none # 临时修改 echo deadline > /sys/block/sdb/queue/scheduler # 永久修改(GRUB参数) vi /etc/default/grub # GRUB_CMDLINE_LINUX 行添加 elevator=deadline grub2-mkconfig -o /boot/grub2/grub.cfg

3.6 文件系统选择:XFS vs EXT4

上线规范推荐使用 XFS 文件系统,优先于 ext4。XFS的优势:

  • 数据完全性:意外宕机后磁盘文件不会被破坏
  • 传输特性:日志记录对文件操作影响小,查询与分配速度快
  • 可扩展性:全64-bit文件系统,支持百万TB存储,使用B+树结构
  • 传输带宽:以接近裸设备I/O性能存储数据,比ext4更快

⚠️ XFS注意事项:XFS的LVM不能直接在线缩减空间,因此分区时尽量往小了分,一旦上线,已分配的空间只扩不减。


4. 系统参数优化

4.1 资源限制配置(limits.conf)

编辑 /etc/security/limits.conf,添加以下配置:

vi /etc/security/limits.conf # 通用配置 * soft nproc 65536 * hard nproc 65536 * soft nofile 65536 * hard nofile 65536 # dmdba用户专用配置 dmdba soft nice 0 dmdba hard nice 0 dmdba soft as unlimited dmdba hard as unlimited dmdba soft fsize unlimited dmdba hard fsize unlimited dmdba soft nproc 65536 dmdba hard nproc 65536 dmdba soft nofile 65536 dmdba hard nofile 65536 dmdba soft core unlimited dmdba hard core unlimited dmdba soft data unlimited dmdba hard data unlimited dmdba soft memlock unlimited dmdba hard memlock unlimited

同时赋予 limits.conf 读取权限:

chmod a+x /etc/security chmod a+r /etc/security/limits.conf

4.2 system.conf 配置

通过 systemctl/systemd 管理的服务进程,其资源限制不受 limits.conf 控制,需修改 /etc/systemd/system.conf

vi /etc/systemd/system.conf DefaultLimitNOFILE=65536 DefaultLimitNPROC=10240 DefaultLimitFSIZE=unlimited DefaultLimitDATA=unlimited DefaultLimitCORE=unlimited DefaultLimitAS=unlimited DefaultLimitNICE=0

⚠️ 注意:保存后需要重启服务器才能生效。可通过 cat /proc/进程号/limits 检查实际资源限制是否生效。

4.3 内核参数(sysctl.conf)

vi /etc/sysctl.conf # 内存分配策略:0表示检查可用内存 vm.overcommit_memory = 0 # swap使用倾向:内存充足时设为10,内存不足时设为1 vm.swappiness = 10 # 最小可用内存(KB),内存≤32G不建议设置 # vm.min_free_kbytes = 1153434 # core文件路径 kernel.core_pattern = /home/dmdba/core/core-%e-%p-%s # 使配置生效 sysctl -p

4.4 MALLOC_ARENA_MAX 参数

当操作系统glibc版本大于2.10时,系统会为数据库线程额外分配内存池,导致VIRT占用过高。设置 MALLOC_ARENA_MAX=1 可禁止此行为。

# 方法一:写入dmdba环境变量 vi /home/dmdba/.bash_profile export MALLOC_ARENA_MAX=1 # 方法二:写入数据库启动脚本 vim DmServicexxx export MALLOC_ARENA_MAX=1

💡 提示:从DM8版本8.1.2.94开始,MALLOC_ARENA_MAX已自动加入服务启动脚本DmService中。

4.5 Core文件管理

# 创建core文件存放目录 mkdir -p /home/dmdba/core chown -R dmdba.dinstall /home/dmdba/core # 设置core文件路径 echo "/home/dmdba/core/core-%e-%p-%s" > /proc/sys/kernel/core_pattern

core文件大小与数据库已使用内存基本相当,存储空间需大于服务器内存值。建议设置清理策略,防止撑爆磁盘。


创建数据库用户与组

⚠️ 重要规范

  • 禁止使用root用户部署达梦数据库
  • dmdba用户密码禁止使用默认值
  • 同一项目中所有服务器的dmdba用户、dinstall组的gid和uid必须一致
# 创建安装组 groupadd dinstall -g 2001 # 创建数据库用户 useradd -g dinstall dmdba -u 1001 # 设置密码 passwd dmdba # 验证 id dmdba # uid=1001(dmdba) gid=2001(dinstall) 组=2001(dinstall) # 修改磁盘属主 chown dmdba:dinstall /dm8 -R chmod 777 /dm8

配置dmdba环境变量

su - dmdba vi ~/.bash_profile export DM_HOME="/dm8/dmdbms" export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm8/dmdbms/bin" export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool # 生效 source ~/.bash_profile

6. 数据库软件安装

6.1 挂载安装介质

# root用户挂载ISO镜像 mount -o loop dm8_20260428_x86_kylin10_sp3_64.iso /mnt # mount: /mnt: WARNING: source write-protected, mounted read-only.

6.2 执行安装

切换到dmdba用户执行安装程序:

su - dmdba cd /mnt ./DMInstall.bin -i

安装交互过程如下:

请选择安装语言 [1]: 1          # 简体中文

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]: n

是否设置时区? (Y/y:是 N/n:否) [Y/y]: y
请选择时区 [21]: 21         # GTM+08:00 中国标准时间

请选择安装类型的数字序号 [1 典型安装]: 1

请选择安装目录: /dm8/dmdbms
可用空间: 29G
是否确认安装路径(/dm8/dmdbms)? (Y/y:是 N/n:否) [Y/y]: y

安装过程输出:

[INFO] 安装达梦数据库...
[INFO] 安装 基础 模块...
[INFO] 安装 服务器 模块...
[INFO] 安装 客户端 模块...
[INFO] 安装 驱动 模块...
[INFO] 安装 手册 模块...
[INFO] 安装 服务 模块...
[INFO] 移动日志文件。
[INFO] 安装达梦数据库完成。

请以root系统用户执行命令:
/dm8/dmdbms/script/root/root_installer.sh

6.3 执行root安装后脚本

# 切回root用户执行 /dm8/dmdbms/script/root/root_installer.sh # 输出: # 移动 /dm8/dmdbms/bin/dm_svc.conf 到/etc目录 # 创建DmAPService服务 # 启动DmAPService服务

💡 提示:安装目录路径中只允许使用小写字母、大写字母、数字、下划线、空格和中文。若安装到子目录提示"没有写入权限",需要先对该目录赋予777权限。


7. 数据库实例初始化

使用 dminit 工具初始化数据库实例。大部分初始化参数一经设置即不可调整,需根据实际业务需求谨慎选择。

7.1 关键初始化参数说明

参数 说明 可选值 默认值
PAGE_SIZE 数据页大小 4/8/16/32(K) 8
LOG_SIZE 日志文件大小 256M~8G 4096M
CHARSET 字符集 0[GB18030]/1[UTF-8]/2[EUC-KR] 0
CASE_SENSITIVE 大小写敏感 Y/N Y
SYSDBA_PWD SYSDBA密码 自定义 -
DB_NAME 数据库名称 自定义 -
INSTANCE_NAME 实例名称 自定义 DMSERVER
PORT_NUM 监听端口 自定义 5236
BLANK_PAD_MODE 结尾空格填充模式 1[兼容Oracle]/0[不兼容] 0

7.2 执行初始化

cd /dm8/dmdbms/bin ./dminit PATH=/dm8/dmdbms/ \ PAGE_SIZE=16 \ LOG_SIZE=1024 \ CASE_SENSITIVE=y \ SYSDBA_PWD=Dameng123# \ SYSAUDITOR_PWD=Dameng123# \ DB_NAME=DM \ INSTANCE_NAME=DM \ PORT_NUM=5236 \ BLANK_PAD_MODE=1

初始化成功输出:

dminit V8
db version: 0x7000d
file dm.key not found, use default license!
License will expire on 2027-04-14
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: /dm8/dmdbms/DM/DM01.log
 log file path: /dm8/dmdbms/DM/DM02.log

write to dir [/dm8/dmdbms/DM].
create dm database success. 2026-07-24 10:59:53

💡 参数选择建议

  • PAGE_SIZE=16:适用于大多数OLTP业务场景,记录长度不能超过页面大小的一半
  • LOG_SIZE=1024:一般应用将REDO日志扩展到2GB即可
  • CHARSET=0:默认GB18030,兼容性最好;需支持多语言时选UTF-8
  • BLANK_PAD_MODE=1:如需兼容Oracle行为,设置为1

8. 服务注册与启停管理

8.1 注册数据库服务

需要使用root用户注册实例启动服务脚本:

su - /dm8/dmdbms/script/root/dm_service_installer.sh \ -t dmserver \ -dm_ini /dm8/dmdbms/DM/dm.ini \ -p DMSERVER

注册成功输出:

Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service → /usr/lib/systemd/system/DmServiceDMSERVER.service
创建服务(DmServiceDMSERVER)完成

8.2 数据库启停

# 启动实例 [dmdba@dm-wangjh bin]$ ./DmServiceDMSERVER start Starting DmServiceDMSERVER: [ OK ] # 关闭实例 [dmdba@dm-wangjh bin]$ ./DmServiceDMSERVER stop Stopping DmServiceDMSERVER: [ OK ]

8.3 开机自启动管理

# 设置开机自启 systemctl enable DmServiceDMSERVER.service # 关闭开机自启 systemctl disable DmServiceDMSERVER.service # 查看服务状态 systemctl status DmServiceDMSERVER.service

也可通过 rc.local 方式设置自启动:

vi /etc/rc.d/rc.local su - dmdba -c "/dm8/dmdbms/bin/DmServiceDMSERVER start" chmod +x /etc/rc.d/rc.local

8.4 验证数据库进程

ps -ef | grep -i dmdba # dmap -- 达梦辅助进程 # dmserver -- 数据库服务进程

9. 开启数据库归档

上线系统必须开启归档,并设置物理备份策略(含清理策略)。归档保存时间建议大于两个全备周期。

9.1 归档的意义

  • 出现介质故障时,可利用归档日志将数据库恢复到故障前一刻或指定时间点
  • 开启归档后支持热备、集群搭建及归档挖掘等功能
  • 数据库运行在归档模式下数据更安全,但会对性能造成些许影响

9.2 创建归档目录

mkdir /dm8/arch chown dmdba:dinstall /dm8/arch chmod -R 755 /dm8/arch

9.3 通过SQL命令开启归档

-- 1. 查询当前归档状态 SQL> SELECT name, arch_mode FROM v$database; -- ARCH_MODE=N 表示未开启 -- 2. 开启归档 SQL> ALTER DATABASE MOUNT; SQL> ALTER DATABASE ARCHIVELOG; SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST=/dm8/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=2048'; SQL> ALTER DATABASE OPEN; -- 3. 验证归档状态 SQL> SELECT name, arch_mode FROM v$database; -- ARCH_MODE=Y 表示已开启

9.4 查看归档配置

SQL> SELECT arch_name, arch_type, arch_dest, arch_file_size, arch_space_limit FROM v$dm_arch_ini; 行号 ARCH_NAME ARCH_TYPE ARCH_DEST ARCH_FILE_SIZE ARCH_SPACE_LIMIT ---- -------------- --------- --------- -------------- ---------------- 1 ARCHIVE_LOCAL1 LOCAL /dm8/arch 1024 2048

SQL执行后会在实例目录下自动生成 dmarch.ini 配置文件:

[ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = /dm8/arch ARCH_FILE_SIZE = 1024 ARCH_SPACE_LIMIT = 2048 ARCH_FLUSH_BUF_SIZE = 2 ARCH_HANG_FLAG = 1

10. 安装后配置检查清单

数据库安装完成并启动后,需要进行以下检查确保配置符合上线规范。

10.1 数据库内存使用

ps -aux | grep dmserver | awk '{print $5, $6}' # 第五列为VIRT,第六列为RES # VIRT应该大于RES,否则异常

10.2 登录数据库

cd /dm8/dmdbms/bin ./disql SYSDBA@192.168.17.100:5236 # 输入密码登录

12. 总结

达梦DM8数据库在麒麟V10上的单机搭建可归纳为以下几个阶段:

  1. OS环境准备:时间同步、防火墙/SELinux关闭、NUMA/THP关闭、Swap关闭、RemoveIPC设置、PAM配置
  2. 磁盘规划:LVM创建、XFS格式化、UUID挂载、IO测试、调度算法设为deadline
  3. 系统参数优化:limits.conf资源限制、system.conf进程限制、sysctl.conf内核参数、MALLOC_ARENA_MAX、core文件管理
  4. 用户创建:创建dmdba用户和dinstall组,配置环境变量
  5. 软件安装:挂载ISO,dmdba用户执行DMInstall.bin,root执行后置脚本
  6. 实例初始化:dminit设置PAGE_SIZE、LOG_SIZE、字符集、端口等参数
  7. 服务注册:root注册dmserver服务,配置启停和自启动
  8. 归档配置:创建归档目录,ALTER DATABASE开启归档模式
  9. 安装后检查:版本匹配、密码修改、端口修改、表空间使用率、归档状态、授权信息

核心要点

  • 禁止root安装:必须使用dmdba用户进行安装
  • 参数不可逆:PAGE_SIZE、CHARSET、CASE_SENSITIVE等参数初始化后不可更改,需提前确认
  • 数据分离:数据、归档、备份文件应存放在不同物理磁盘
  • 必须归档:上线系统必须开启归档,并配置备份清理策略
  • 安全加固:修改默认密码、修改默认端口、限制用户权限

本文基于实际搭建过程的操作记录整理,参考了《达梦数据库项目上线规范V4.8》《达梦数据库DM8单机搭建实操V1.3》《DM8_dminit使用手册》等文档。在实际生产部署中,还需根据具体业务需求调整初始化参数和系统配置。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服