注册
Kylin V10 SP3 aarch6 安装 DM8单机数据库
技术分享/ 文章详情 /

Kylin V10 SP3 aarch6 安装 DM8单机数据库

张º 2026/08/14 117 0 0

一、开篇说明:

  1. 刚开始学习DM的第一周,作为从未接触过DM的小白来说,优先想的就是从环境部署开始,用于数据库学习与测试的开端。
  2. 本文档会详细介绍了DM8 在 Kylin V10 SP3(aarch64)操作系统上的完整安装部署流程,整体采用命令行方式进行安装。
  3. 文章中主要包括8部分:
    a. 产品兼容性说明
    b. 环境规划
    c. 基础环境配置
    d. 数据库软件安装
    e. 实例初始化
    f. 服务注册到数据库启停
    g. 登录验证
    h. 数据库删除
  4. 如有配置异常部分,请多多指教。

注意:

  1. 本文档示例基于 Kylin V10 SP3 (aarch64)操作系统及 DM8 特定版本(dm8_20260109_HWarm_kylin10_sp3_64),其他版本的操作系统或数据库安装过程可能存在差异,请根据实际情况进行调整。
  2. 此手册只供个人搭建测试使用,实际生产操作需要做好需求分析,环境调研工作,根据最佳实践要求进行数据库搭建。

二、环境兼容性说明

达梦8 对信创与非信创环境均全面兼容,是国内适配面最广的数据库之一。DM8 安装包以「CPU 架构 + 操作系统」组合形式发布,覆盖了从通用 x86/Windows 环境到龙芯、飞腾、鲲鹏等国产芯片 + 麒麟、统信等国产操作系统的完整信创组合。
支持信息如下:
非信创平台支持情况(Intel/AMD等通用硬件+通用操作系统):
1.png
2.png
信创平台支持情况(国产 CPU + 国产操作系统):
3.png
4.png
国产芯片架构覆盖:
5.png

三、环境搭建

1. 环境规划

1.1 环境版本信息

image.png

1.2 主机网络信息

image.png
注意:
1. 主机名允许使用字母、数字和中横线(-),不允许以数字开头,并且建议字母全部使用小写。
2. /etc/hosts 文件必须有 127.0.0.1 回路地址的解析,且后面不能添加任何无关条目。
3. /etc/hosts 文件必须有 IP 地址的解析,且后面不能添加任何无关条目。

1.3 文件系统划分

  1. 生产环境文件系统建议使用XFS协议,XFS 是日志型 64 位文件系统,宕机可快速恢复数据,I/O 吞吐、扩展性优异,适配超大存储与海量文件场景,但不支持在线缩减文件系统空间,部署分区时需谨慎规划容量。
  2. dmdb所需目录分别包括:软件目录、数据(事例)目录、备份目录、归档目录。
  3. 生产环境建议根据下述信息分配存储,本次为个人测试环境搭建,未按照下述要求分配存储。
    存储划分规则如下(以数据总量为50G列举):
    image.png

1.4 用户信息划分

image.png

1.5 数据库划分

image.png

2. 基础环境配置

2.1 基础配置检查(生产环境需仔细检查)

image.png
image.png

2.2 内存检查

  1. 查看系统内存
# (ROOT)
free -g

image.png

  1. 查看swap
# (ROOT)
swapon -s

image.png

  1. 关闭swap
# (ROOT) 
sed -ri 's/.*swap.*/#&/' /etc/fstab
reboot

# 重启后确认
# (ROOT) 
free -g

image.png

2.3 CPU检查

- #(ROOT) 
lscpu | grep "每个核的线程数"
或英文系统:
lscpu | grep "Thread(s) per core"
输出 1 就是没开超线程,输出 2 就是开了

2.4 磁盘检查

# 生产环境建议按照1.3进行划分。
# (ROOT) 
df -Th

image.png

2.4.1 存储性能测试:

  1. 传统关系型数据库的最大瓶颈之一就在于磁盘的读写速率上,因此检测磁盘的IO速率是十分必要的。
  2. 磁盘的运作是磁盘读写前寻找磁道的过程。磁盘自带的读写缓存大小,对于磁盘读写速度至关重要。读写速度快的磁盘,通常都带有较大的读写缓存。测试服务器读写性能,以此来判断是否存在性能瓶颈。
  3. 性能测试:
  • 真实模拟 20K 次磁盘写入(IO)
# (ROOT) 
dd bs=32k count=20k if=/dev/zero of=test oflag=dsync
记录了20480+0 的读入
记录了20480+0 的写出
671088640字节(671 MB,640 MiB)已复制,20.6607 s,32.5 MB/s
# 说明:
bs=32k:每个数据块 32 KB
count=20k:共写入 20000 个块
总数据量:640 MiB ≈ 671 MB
oflag=dsync 强制每次写入都等待磁盘确认,测的是同步 IO 性能,而不是普通文件缓存写入。
测得结果:耗时 20.66 秒,速率 32.5 MB/s
  • 测试 buffered 顺序写入(看磁盘本身带宽)
# (ROOT) 
dd bs=1M count=1024 if=/dev/zero of=test conv=fdatasync
记录了1024+0 的读入
记录了1024+0 的写出
1073741824字节(1.1 GB,1.0 GiB)已复制,2.472 s,434 MB/s
# 说明:
记录了1024+0 的读入	从输入源成功读取 1024 个完整块,没有部分块
记录了1024+0 的写出	成功写入 1024 个完整块
1073741824字节		总数据量,1 GB
1.1 GB,1.0 GiB		用十进制和二进制两种方式表示容量
2.472 s				耗时2.472 秒
434 MB/s			平均写入速度

磁盘调度算法:
通过 lsblk  命令找到数据盘对应的物理盘,

6.png

# (ROOT) 
cat /sys/block/vda/queue/scheduler

达梦数据库的稳定运行,需要将磁盘的调度算法设置为 deadline,特别是 arm 平台,必须要设置为 deadline。如存储为 nvme 等高性能的设备时,此类设备 IO 调度算法只有 none,则无需设置。

image.png

2.5 时区检查

注意:保证系统时间、时区与实际一致。
时间不正确会有以下问题:

1. 试用授权产品,会导致试用授权过期,无法使用;
2. 集群自动切换场景,可能会导致集群检测节点服务异常, 引发误切换;
3. 数据库运行日志、数据库服务日志、归档日志、备份集等时间记录错误,会导致相关分析和排查工作难度增大。
  1. 检查步骤:
#(ROOT) 
date -R
timedatectl |grep "Time zone"
  1. 修改步骤:
#  如果时间不对,通过下面命令手动修改
date -s "yyyy-mm-dd HH:MM:SS"
#  如果不是东八区,通过下面命令修改
timedatectl set-timezone "Asia/Shanghai"

#调整后验证
date -R
timedatectl |grep "Time zone"
  1. 生产环境中如有配置好的NTP服务器可以使用,需要配置时钟同步,步骤如下:
## 修改 chrony.conf 配置文件 ,将原配置文件中的 server 注释掉,换成 NTP 服务器地址。
#(ROOT) 
vi /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 0.centos.pool.ntp.org iburst
#server 0.centos.pool.ntp.org iburst
server 10.10.xxx.xxx iburst
server 10.10.xxx.xxx iburst

## 修改完配置后重启 chronyd 服务
systemctl restart chronyd

## 并配置 chronyd 为开机启动
systemctl enable chronyd

## 检查 chronyd 服务状态
systemctl status chronyd

## 查看时间同步源
chronyc sources -v

## 时间验证
date -R / date

2.6 配置/etc/hosts文件

#(ROOT)
cat >> /etc/hosts <<EOF
192.168.64.10 node1
EOF

##  检查验证 ##
cat /etc/hosts

image.png

2.7 配置YUM源

  1. 虚拟机挂载系统安装 ISO(光盘或 ISO 文件):
# (ROOT)
mkdir -p /mnt
mount /dev/cdrom /mnt

image.png

  1. 主机上传ISO 文件:
# (ROOT)
# mount -o loop /path/to/Kylin-Server-V10-SP1-x86_64.iso /mnt
  1. 备份原有 repo 配置:
# (ROOT)
cd /etc/yum.repos.d/
mkdir backup && mv *.repo backup/
  1. 新建本地源配置:
# (ROOT)
cat > /etc/yum.repos.d/kylin10-local.repo << 'EOF'
[Kylin10-Local]
name=Kylin V10 Local Repository
baseurl=file:///mnt
enabled=1
gpgcheck=0
EOF

# 生效
# (ROOT)
yum clean all
yum makecache

image.png

2.8 安装依赖包

DM8 依赖包检查与安装脚本(Kylin V10 SP3 / aarch64)

  1. 创建脚本并执行
#(ROOT)
vi yum_check_pkg.sh
PKGS="libaio libaio-devel  binutils gcc gcc-c++ make libXext libXtst libXrender unixODBC unixODBC-devel"

MISSING=""
echo "========== 第一步:检查已安装情况 =========="
for pkg in $PKGS; do
    if rpm -q "$pkg" >/dev/null 2>&1; then
        echo "[已安装] $pkg"
    else
        echo "[未安装] $pkg"
        MISSING="$MISSING $pkg"
    fi
done

echo ""
echo "========== 第二步:安装缺失的包 =========="
if [ -z "$MISSING" ]; then
    echo "所有依赖包均已安装,无需安装操作。"
else
    echo "待安装:$MISSING"
    yum install -y $MISSING
fi

echo ""
echo "========== 第三步:安装后复查 =========="
FAILED=""
for pkg in $PKGS; do
    if rpm -q "$pkg" >/dev/null 2>&1; then
        echo "[OK]   $pkg"
    else
        echo "[缺失] $pkg"
        FAILED="$FAILED $pkg"
    fi
done

echo ""
if [ -z "$FAILED" ]; then
    echo ">>> 检查完成:所有依赖包已就绪,可以继续安装 DM8。"
else
    echo ">>> 警告:以下包仍未安装成功,请检查 yum 源是否可用:$FAILED"
fi

sh yum_check_pkg.sh
  1. 输出示例:

image.png

2.9 禁用防火墙与SELinux 检查

# 关闭防火墙
# (ROOT)
systemctl stop firewalld
# 关闭开机自启
systemctl disable firewalld

image.png

# 禁用SELINUX 配置
# (ROOT)
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
grep '^SELINUX=' /etc/selinux/config    # 确认已改为 disabled
reboot

# 重启后验证
getenforce        # 应显示 Disabled
sestatus          # Current mode: disabled

2.10 禁用透明大页

# 查看当前状态:
# (ROOT)
cat /etc/selinux/configcat /sys/kernel/mm/transparent_hugepage/enabled
always [madvise] never
cat /sys/kernel/mm/transparent_hugepage/defrag
always defer defer+madvise [madvise] never

# 关闭 THP
# 执行下面两条命令:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

# 再次查看:
cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
cat /sys/kernel/mm/transparent_hugepage/defrag
always defer defer+madvise madvise [never]

# 写入 GRUB 启动参数:
# 查看当前配置
grubby --info=DEFAULT | grep args
args="ro rd.lvm.lv=klas/root rd.lvm.lv=klas/swap video=VGA-1:640x480-32@60me rhgb quiet console=tty0 crashkernel=1024M,high smmu.bypassdev=0x1000:0x17 smmu.bypassdev=0x1000:0x15 video=efifb:off audit=0"

# 更改配置
grubby --args="transparent_hugepage=never" --update-kernel=ALL

# 更改后验证
grubby --info=DEFAULT | grep args
args="ro rd.lvm.lv=klas/root rd.lvm.lv=klas/swap video=VGA-1:640x480-32@60me rhgb quiet console=tty0 crashkernel=1024M,high smmu.bypassdev=0x1000:0x17 smmu.bypassdev=0x1000:0x15 video=efifb:off audit=0 transparent_hugepage=never"

# 更改后验证
cat >> /etc/rc.d/rc.local <<'EOF'
echo never > /sys/kernel/mm/transparent_hugepage/defrag
EOF

chmod +x /etc/rc.d/rc.local

# 重启主机生效:
reboot

# 重启后验证
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

image.png

2.11 调整 sysctl.conf 参数

参数说明:

  1. vm.overcommit_memory表示系统的内存分配策略.
  可以选值为0,1,2,说明如下:
  0:表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则内存申请失败,并把错误返回给应用进程。
  1:表示内核允许分配所有的物理内存,不管当前的内存状态如何。
  2:表示内核允许分配超过所有物理内存和交换空间总和的内存。
  建议:vm.overcommit_memory=0
  1. vm.numa_stat在 NUMA 架构下,系统默认会统计每个 NUMA 节点的内存分配情况,用于内存调度决策。
  设为0后,内核不再维护这些统计信息,可减少一部分运行时开销,建议关闭,避免跨 NUMA 节点访问带来的内存延迟和性能波动。该参数在部分较老的内核中可能不存在。执行 sysctl -p 时如果报错 cannot stat /proc/sys/vm/numa_stat,说明当前内核不支持,直接注释掉即可。
  建议:vm.numa_stat=0
  1. vm.swappiness控制内核使用交换空间(swap)的倾向程度
取值范围 0 ~ 100。
  0	 表示除非内存完全耗尽,否则尽量不使用 swap
  1	 表示尽可能少使用 swap,但比 0 稍宽松
  100	 标志积极使用 swap
数据库服务器通常希望尽量少用 swap,因为 swap 会显著降低数据库性能;设为1保留极小的 swap 使用可能,同时避免 OOM killer 过早触发;如果系统内存非常充足,也可以设为 0,但要确保内存监控到位,避免触发 OOM。

建议:vm.swappiness=1
  1. 配置core dump 路径
定义进程崩溃时生成的 core dump 文件路径和命名格式;格式说明:
格式符	含义
-----   ---------------
  %e	执行文件名
  %p	进程 PID
  %s	导致崩溃的信号编号
  %t	崩溃时间戳(秒)
例如:/home/dmdba/core/core-dmserver-12345-11需要提前创建目录并授权:
  mkdir -p /home/dmdba/core
  chown dmdba:dmdba /home/dmdba/core
  chmod 755 /home/dmdba/core
否则 dmdba 用户进程崩溃时无法写入 core 文件

建议:kernel.core_pattern = /home/dmdba/core/core-%e-%p-%s
  1. 编辑配置文件,完成参数配置
# (ROOT)
vi /etc/sysctl.conf

#  修改下述文件
vm.numa_stat = 0
vm.overcommit_memory=0
vm.swappiness=1 
kernel.core_pattern =/home/dmdba/core/core-%e-%p-%s
sysctl -p

#  查看所有参数是否生效
sysctl -a | grep -E "vm.overcommit_memory|vm.swappiness|vm.numa_stat|kernel.core_pattern"

image.png

2.12 调整 limits.conf 参数

  1. 参数说明
core file size  建议设置为 unlimited。 并将core文件目录放到大的空间目录存放。
data seg size  建议设置为1048576以上或unlimited,此参数过小将导致数据库启动失败。
file size  建议设置 unlimited,此参数过小导致数据库安装或初始化失败。
open files  建议设置为65536以上或unlimited。
virtual memory  建议设置为1048576以上或unlimited,此参数过小将导致数据库启动失败。
max user processes  最大线程数这个参数建议修改为10240。
  1. 参数调整
ulimit -a

image.png

#(ROOT)

echo "
* soft nproc 65536
* hard nproc 65536
* soft nofile 65536
* hard nofile 65536

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 " >> /etc/security/limits.conf

##  重启操作系统 
reboot

##  确认是否生效
ulimit -a

注:上述配置中已添加nproc配置,无需额外配置nproc.conf文件。

2.13 调整 system.conf 参数

  1. 参数说明
DefaultLimitNOFILE:用户默认最大打开文件数。
DefaultLimitNPROC:用户默认最大进程数。
  1. 参数修改
# (ROOT)
systemctl show --property=DefaultLimitNOFILE --property=DefaultLimitNPROC
DefaultLimitNOFILE=524288
DefaultLimitNPROC=11673

#  修改参数配置:
echo "
DefaultLimitNOFILE=65536
DefaultLimitNPROC=10240" >> /etc/systemd/system.conf

#  重启系统生效:
reboot

#  验证
# (ROOT)
systemctl show --property=DefaultLimitNOFILE --property=DefaultLimitNPROC

image.png

2.14 RemoveIPC 参数设置

#(ROOT)
#  查看当前配置信息
systemctl show systemd-logind | grep -i removeipc
#  修改配置
echo "RemoveIPC=no" >> /etc/systemd/logind.conf
#  验证配置
grep -E "RemoveIPC=no" /etc/systemd/logind.conf
#  查看修改后配置信息
systemctl show systemd-logind | grep -i removeipc

image.png

2.15 数据库用户创建与目录创建

#  创建用户
# (ROOT)
groupadd dinstall -g 2001
useradd -g dinstall dmdba -u 1001
passwd dmdba

#  密码  111111
#  创建目录及授权
mkdir -p /opt/dmdbms
mkdir -p /opt/soft
mkdir -p /dmdata
mkdir -p /dmarch
mkdir -p /dmbak
mkdir -p /home/dmdba/core
chown dmdba.dinstall /opt/dmdbms -R;chmod 777 /opt/dmdbms -R
chown dmdba.dinstall /opt/soft -R;chmod 777 /opt/soft -R
chown dmdba.dinstall /dmdata -R;chmod 777 /dmdata -R
chown dmdba.dinstall /dmarch -R;chmod 777 /dmarch -R
chown dmdba.dinstall /dmbak -R;chmod 777 /dmbak -R
chown dmdba:dinstall /home/dmdba/core;chmod 777 /home/dmdba/core

2.16 调整 login

#(ROOT)
grep -E "session    required    /lib64/security/pam_limits.so|session    required    pam_limits.so" /etc/pam.d/login

##  修改配置
echo "
session    required    /lib64/security/pam_limits.so
session    required    pam_limits.so" >> /etc/pam.d/login

#  验证配置
grep -E "session    required    /lib64/security/pam_limits.so|session    required    pam_limits.so" /etc/pam.d/login

image.png

2.17 调整profile参数

$(DMDBA)
su - dmdba
vi .bash_profile
export DM_HOME="/opt/dmdbms"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/dmdbms/bin"
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool

3. 数据库安装

3.1 软件安装

  1. 安装介质挂载
# (ROOT)
mount -o loop /opt/soft/dm8_20260109_HWarm_kylin10_sp3_64.iso /mnt
cd /mnt
ls -lrt
总用量 1020675
-r-xr-xr-x 1 root root    3011547  5月 23  2025 'DM8 Install.pdf'
-r-xr-xr-x 1 root root 1042159551  1月  9  2026  DMInstall.bin

# (ROOT)
su - dmdba
上一次登录: 四 8月  6 20:44:27 CST 2026 pts/0 上
$(DMDBA)
[dmdba@node1 ~]# cd /mnt
  1. 执行安装命令
$ (DMDBA)
[dmdba@node1 ~]# ./DMInstall.bin -i
安装语言: 
[1]: 简体中文
[2]: English
请选择安装语言 [1]:1
解压安装程序......... 
欢迎使用达梦数据库安装程序

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:Y
--注释:没有key选择N

请输入Key文件的路径地址 [dm.key]:/opt/soft/dm.key
有效日期: xxxx-xx-xx
服务器颁布类型: 企业版
发布类型: 试用版
用户名称: 武汉达梦公司疫情期间临时授权
授权用户数: 无限制
并发连接数: 无限制

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

安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1
所需空间: 2036M
请选择安装目录 [/home/dmdba/dmdbms]:/opt/dmdbms
可用空间: 26G
是否确认安装路径(/opt/dmdbms)? (Y/y:是 N/n:否)  [Y/y]:y
安装前小结
安装位置: /opt/dmdbms
所需空间: 2036M
可用空间: 26G
版本信息: 企业版
有效日期:xxxx-xx-xx
安装类型: 典型安装

是否确认安装? (Y/y:是 N/n:否):y
2026-08-06 21:16:23 
[INFO] 安装达梦数据库...
2026-08-06 21:16:23 
[INFO] 安装 基础 模块...
2026-08-06 21:16:29 
[INFO] 安装 服务器 模块...
2026-08-06 21:16:29 
[INFO] 安装 客户端 模块...
2026-08-06 21:16:33 
[INFO] 安装 驱动 模块...
2026-08-06 21:16:34 
[INFO] 安装 手册 模块...
2026-08-06 21:16:34 
[INFO] 安装 服务 模块...
2026-08-06 21:16:35 
[INFO] 移动日志文件。
2026-08-06 21:16:37 
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/opt/dmdbms/script/root/root_installer.sh
安装结束
  1. root 用户执行脚本
#(ROOT)
[root@node1 ~]# /opt/dmdbms/script/root/root_installer.sh
移动 /opt/dmdbms/bin/dm_svc.conf 到/etc目录
创建DmAPService服务
Created symlink /etc/systemd/system/multi-user.target.wants/DmAPService.service → /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务
  1. 执行后验证
##  查看进程
#(ROOT)
[root@node1 ~]# ps -ef|grep dmdba |grep -v grep
dmdba      21162       1  0 21:17 ?        00:00:00 /opt/dmdbms/bin/dmap dmap_ini=/opt/dmdbms/bin/dmap.ini

3.2 初始化实例

  1. 初始化脚本
$(DMDBA)
[dmdba@node1 ~]# dminit path=/dmdata/ PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=4096 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DMTEST01 INSTANCE_NAME=DM01 PORT_NUM=5237 SYSDBA_PWD=Aaaa1111!  SYSAUDITOR_PWD=Aaaa1111!
  1. 参数详解
页大小(PAGE_SIZE):32
簇大小(EXTENT_SIZE):32
日志大小(LOG_SIZE):4096
大小写(CASE_SENSITIVE)[Y:敏感 / N:不敏感]:敏感
字符集(CHARSET)[0:GB18030 / 1:UTF-8]:GB18030
实例名:INSTANCE_NAME
数据库名:DB_NAME
  1. 输出日志
initdb V8
db version: 0x7000d
file dm.key not found, use default license!
License will expire on 2027-01-07
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

log file path: /dmdata/DMTEST01/DMTEST0101.log
log file path: /dmdata/DMTEST01/DMTEST0102.log

write to dir [/dmdata/DMTEST01].
create dm database success. 2026-08-06 21:34:18
  1. 验证文件是否生成
$(DMDBA)
[dmdba@node1 ~]$ ls -ld /dmdata/*
drwxr-xr-x 5 dmdba dinstall 242  8月  6 21:34 /dmdata/DMTEST01

[dmdba@node1 ~]$ cd /dmdata/DMTEST01/
[dmdba@node1 DMTEST01]$ ls -lrt
总用量 9009260
drwxr-xr-x 2 dmdba dinstall          6  8月  6 22:05 bak
-rw-r--r-- 1 dmdba dinstall        714  8月  6 22:05 sqllog.ini
-rw-r--r-- 1 dmdba dinstall      84439  8月  6 22:05 dm.ini
-rw-r--r-- 1 dmdba dinstall        633  8月  6 22:05 dm_service.prikey
drwxr-xr-x 2 dmdba dinstall          6  8月  6 22:05 HMAIN
-rw-r--r-- 1 dmdba dinstall  134217728  8月  6 22:05 MAIN.DBF
-rw-r--r-- 1 dmdba dinstall        983  8月  6 22:05 dminit20260806220554.log
-rw-r--r-- 1 dmdba dinstall       3072  8月  6 22:06 dmtemp.ctl
drwxr-xr-x 2 dmdba dinstall          6  8月  6 22:06 trace
-rw-r--r-- 1 dmdba dinstall 4294967296  8月  6 22:26 DMTEST0102.log
-rw-r--r-- 1 dmdba dinstall   77594624  8月  6 22:26 TEMP.DBF
-rw-r--r-- 1 dmdba dinstall       5632  8月  6 22:26 dm.ctl
drwxr-xr-x 2 dmdba dinstall        114  8月  6 22:26 ctl_bak
-rw-r--r-- 1 dmdba dinstall  289406976  8月  6 22:29 SYSTEM.DBF
-rw-r--r-- 1 dmdba dinstall  134217728  8月  6 22:59 ROLL.DBF
-rw-r--r-- 1 dmdba dinstall 4294967296  8月  6 22:59 DMTEST0101.log

3.3 创建实例服务

  1. 创建实例
# (ROOT)
[root@~]# cd /opt/dmdbms/script/root
[root@~]# ./dm_service_installer.sh -t dmserver -dm_ini /dmdata/DMTEST01/dm.ini -p DM01
  1. 参数说明
参数				说明
------------------------------- ------------------------------------------------------------
./dm_service_installer.sh	达梦自带的服务注册脚本,通常在$DM_HOME/tool/ 目录下
-t dmserver			服务类型为 数据库服务器(database server)
-dm_ini /dmdata/DMTEST01/dm.ini	指定数据库实例的配置文件路径
-p DM01				服务名后缀,注册后的服务名为 DmServiceDM01,通常设定为INSTANCE_NAME
  1. 输出日志
# (ROOT)
[root@node1 root]# ./dm_service_installer.sh -t dmserver -dm_ini /dmdata/DMTEST01/dm.ini -p DM01
Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDM01.service → /usr/lib/systemd/system/DmServiceDM01.service.
创建服务(DmServiceDM01)完成
  1. 文件验证
$ (DMDBA)
[dmdba@node1 bin]$ ls -l DmServiceDM01 
-rwxr-xr-x 1 dmdba dinstall 18503  8月  7 00:32 DmServiceDM01

3.4 启动实例

  1. 启动
$ (DMDBA)
[dmdba@node1 ~]$ DmServiceDM01 start
Starting DmServiceDM01:     [ OK ]
  1. 验证
$ (DMDBA)
#  进程查看
[dmdba@node1 ~]$ ps -ef | grep -E "dmserver|dmap" |grep -v grep
dmdba      26572       1  1 22:26 pts/1    00:00:13 /opt/dmdbms/bin/dmserver path=/dmdata/DMTEST01/dm.ini -noconsole
dmdba      26815       1  0 22:37 pts/1    00:00:00 /opt/dmdbms/bin/dmap dmap_ini=/opt/dmdbms/bin/dmap.ini

#  数据库登陆连接测试
[dmdba@node1 ~]$ disql sysdba/"Aaaa1111!"@192.168.64.10:5237
服务器[192.168.64.10:5237]:处于普通打开状态
登录使用时间 : 32.370(ms)
disql V8
SQL> show parameter name
行号            PARA_NAME       PARA_VALUE
----------     --------------  -------------
1              INSTANCE_NAME   DM01

4. 数据库删除

4.1 停实例

$ (DMDBA)
[dmdba@node1 ~]$ DmServiceDM01 status
DmServiceDM01 (pid 26572) is running.
[dmdba@node1 ~]$ DmServiceDM01 stop
Stopping DmServiceDM01:                                    [ OK ]

#  查看后台进程
[dmdba@node1 ~]$ ps -ef |grep -v grep |grep dmservice

4.2 删除实例服务

#(ROOT)
[root@node1 root]# cd /opt/dmdbms/script/root
[root@node1 root]# ls
dm_service_installer.sh  dm_service_uninstaller.sh  root_installer.sh

[root@node1 root]# ./dm_service_uninstaller.sh -n DmServiceDM01
是否删除服务(DmServiceDM01)?(Y/y:是 N/n:否): y
Removed /etc/systemd/system/multi-user.target.wants/DmServiceDM01.service.
删除服务文件(/usr/lib/systemd/system/DmServiceDM01.service)完成
删除服务(DmServiceDM01)完成

#  验证
[dmdba@node1 bin]$ ls -l DmServiceDM01 

4.3 删除数据库

#(ROOT)
[root@node1 ~]# cd /opt/dmdbms
[root@node1 dmdbms]# ./uninstall.sh -i
请确认是否卸载达梦数据库(/opt/dmdbms/)? (y/Y:是 n/N:否):y
是否删除dm_svc.conf配置文件? (y/Y:是 n/N:否):y
正在删除所有数据库库服务
删除数据库服务DmJobMonitorService
删除数据库服务DmJobMonitorService完成。
删除数据库服务DmInstanceMonitorService
删除数据库服务DmInstanceMonitorService完成。
删除数据库服务DmAuditMonitorService
删除数据库服务DmAuditMonitorService完成。
删除数据库服务DmAPService
删除数据库服务DmAPService完成。
删除所有数据库库服务完成
正在删除数据库目录
删除bin目录
删除bin目录完成
删除bin2目录
删除bin2目录完成
删除include目录
删除include目录完成
删除desktop目录
删除desktop目录完成
删除doc目录
删除doc目录完成
删除drivers目录
删除drivers目录完成
删除jdk目录
删除jdk目录完成
删除jar目录
删除jar目录完成
删除samples目录
删除samples目录完成
删除script目录
删除script目录完成
删除tool目录
删除tool目录完成
删除uninstall目录
删除uninstall目录完成
删除license_en.txt文件
删除license_en.txt文件完成
删除license_chs.txt文件
删除license_chs.txt文件完成
删除license_cht.txt文件
删除license_cht.txt文件完成
删除uninstall.sh文件
删除uninstall.sh文件完成
删除数据库目录完成

4.4 删除相关文件及服务

  1. 删除服务
#(ROOT)
#  停止服务
systemctl status DmAPService.service
#  禁用开机自启
systemctl disable DmAPService.service
#  删除服务文件
rm -f /usr/lib/systemd/system/DmAPService.service
#  重新加载 systemd
systemctl daemon-reload
#  验证已移除
systemctl status DmAPService.service
  1. 删除文件
# (ROOT)
#  删除文件
[root@node1 /]# ls -lrt /dm*
/dmarch:
总用量 0
/dmbak:
总用量 0
/dmdata:
总用量 0
drwxr-xr-x 6 dmdba dinstall 289  8月  6 22:26 DMTEST01
[root@node1 /]# ls -lrt /opt/dm*
总用量 0
drwxr-xr-x 2 dmdba dinstall 301  8月  6 23:42 log
drwxr-xr-x 3 dmdba dinstall  18  8月  6 23:42 bin

#  删除相应文件:  
!!!【生产环境操作需谨慎,双人复核后操作】!!!
[root@node1 ~]# cd /dmdata
[root@node1 dmdata]# rm -rf DMTEST01 
[root@node1 dmdata]# cd /opt/dmdbms
[root@node1 dmdbms]# rm -rf *

5. 在已删除的数据库服务器,重新搭建数据库典型报错汇总

5.1 DmAPService.service start failed

  1. 报错信息

image.png

  1. 排查步骤:
[root@node1 ~]# journalctl -xe | grep DmAPService
...
8月 06 23:56:39 node1 DmAPService[30726]: DmAPService (pid 26815) is running.
8月 06 23:56:39 node1 systemd[1]: DmAPService.service: Control process exited, code=exited, status=2/INVALIDARGUMENT
-- An ExecStart= process belonging to unit DmAPService.service has exited.
8月 06 23:56:39 node1 systemd[1]: DmAPService.service: Failed with result 'exit-code'.
-- The unit DmAPService.service has entered the 'failed' state with result 'exit-code'.
8月 06 23:56:39 node1 systemd[1]: Failed to start DM Assistant Plug-In Service(DmAPService)..
-- Subject: DmAPService.service 单元已失败
-- DmAPService.service 单元已失败。

#  是dmap进程已经启动了,导致DmAPService.service	启动失败
[root@node1 ~]# ps -ef | grep dmap
dmdba      26815       1  0 22:37 ?        00:00:05 /opt/dmdbms/bin/dmap dmap_ini=/opt/dmdbms/bin/dmap.ini
[root@node1 ~]# su - dmdba -c '/opt/dmdbms/bin/DmAPService stop'
Stopping DmAPService:     [ OK ]
[root@node1 ~]# ps -ef | grep dmap
root       30889   14554  0 00:00 pts/0    00:00:00 grep --color=auto dmap
[root@node1 ~]# systemctl start DmAPService
[root@node1 ~]# systemctl enable DmAPService
[root@node1 ~]# systemctl status DmAPService
● DmAPService.service - DM Assistant Plug-In Service(DmAPService).
   Loaded: loaded (/usr/lib/systemd/system/DmAPService.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2026-08-07 00:00:22 CST; 13s ago
 Main PID: 30928 (dmap)
    Tasks: 3
   Memory: 61.5M
   CGroup: /system.slice/DmAPService.service
           └─30928 /opt/dmdbms/bin/dmap dmap_ini=/opt/dmdbms/bin/dmap.ini

8月 07 00:00:07 node1 systemd[1]: Starting DM Assistant Plug-In Service(DmAPService)....
8月 07 00:00:22 node1 DmAPService[30907]: [33B blob data]
8月 07 00:00:22 node1 systemd[1]: Started DM Assistant Plug-In Service(DmAPService)..

至此整体搭建已完成供参考。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服