本文记录个人在 Mac M3 上使用 UTM 搭建 CentOS 7 x86_64 测试环境,并完成达梦 DM8 单机安装的过程。分享经验,供使用Mac的同学本地学习使用达梦时参考。
我的本地环境如下:
| 项目 | 配置 |
|---|---|
| 宿主机 | Mac M3,Apple Silicon,ARM64 |
| 虚拟机软件 | UTM |
| Linux 客户机 | CentOS 7 x86_64 Minimal |
| DM8 安装包 | dm8_20260710_x86_CentOS7_64.zip |
| 虚拟机资源 | 2 核 CPU、4 GB 内存、60GB 单块磁盘 |
| 数据库 | DM8 单机单实例 |
| 数据库名 | DAMENG |
| 实例名 | DMSERVER |
| 监听端口 | 5236 |
这里有一个必须先理解的架构问题:Mac M3 是 ARM,而本次 CentOS 和 DM8 安装包都是 x86_64。因此 UTM 中不能选择 ARM64 原生虚拟化,而要选择 x86_64 模拟模式。注意模拟模式可以运行,但速度会比普通 ARM 虚拟机慢。
最开始考虑过其他工具,最后使用 UTM,原因:
UTM 的代价是性能较慢,所以这套环境适合学习安装、服务管理和 SQL 操作,不适合做性能基准测试。
在 UTM 中新建虚拟机,关键选项如下:
.qcow2 真正安装完 CentOS 的系统虚拟硬盘。然后再打开正常启动虚拟机。安装 CentOS 时采用自动分区:
DM8 安装前,可以考虑先复制整份 UTM 虚拟机文件,作为一个回退点或者备份快照。
后续命令都在 CentOS 虚拟机内执行。需要区分两种账号:
cat /etc/centos-release uname -m hostname free -h df -hT ip addr
hostnamectl set-hostname dm8-lab
CentOS 7 已停止维护,默认镜像地址无法正常使用。因此在安装依赖前,需要把 YUM 源改成 CentOS Vault 的 7.9.2009 归档源。
mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/CentOS-*.repo /etc/yum.repos.d/backup/ 2>/dev/null || true
编辑 /etc/yum.repos.d/CentOS-Vault.repo,内容如下:
[base]
name=CentOS-7.9.2009 - Base - Vault
baseurl=https://vault.centos.org/7.9.2009/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-7.9.2009 - Updates - Vault
baseurl=https://vault.centos.org/7.9.2009/updates/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-7.9.2009 - Extras - Vault
baseurl=https://vault.centos.org/7.9.2009/extras/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
yum clean all yum makecache yum repolist yum install -y tar unzip libaio libaio-devel vim
如果 yum makecache 失败,先检查虚拟机网络、DNS,然后考虑配置国内镜像源。
以下为基础的一些配置,更多参考安装前准备工作
https://eco.dameng.com/document/dm/zh-cn/ops/before-installation.html
cat /etc/os-release ##操作系统查询:
uname -r ##内核查询
getconf LONG_BIT ##系统位数查询
lscpu ##CPU查看
##关闭防火墙
[root@~]# systemctl stop firewalld
##关闭开机自启
[root@~]# systemctl disable firewalld
##临时关闭 SELinux:
[root@localhost ~]# setenforce 0
##临时修改
##查看是否启用透明大页
[root@~]# cat /sys/kernel/mm/transparent_hugepage/enabled
##[always]表示透明大页启用 [never] 表示透明大页禁用
##禁用透明大页
[root@~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
## 调整sysctl.conf参数
##永久生效
##用root用户编辑配置文件编辑/etc/sysctl.conf
[root@dm~]# vim /etc/sysctl.conf
##修改vm.overcommit_memory=0
## 执行 `sysctl -p` 使配置文件生效
### 调整 limits.conf 参数
##编辑 limits.conf 文件
[root@~]# vi /etc/security/limits.conf
##在最后面添加以下内容
* 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
##重启操作系统
[root@]# reboot
##确认是否生效
[dmdba@]# ulimit -a
## 调整 system.conf 参数
##编辑配置文件 /etc/systemd/system.conf
[root@dm~]# vim /etc/systemd/system.conf
##添加配置:
DefaultLimitNOFILE=65536
DefaultLimitNPROC=10240
[root@]# groupadd dinstall -g 2001
[root@]# useradd -g dinstall dmdba -u 1001
[root@]# passwd dmdba
[root@]# --<输入密码>
[root@~]# --<再次输入密码>
[root@]# mkdir /opt/dmdbms [root@]# chown dmdba:dinstall /opt/dmdbms -R [root@]# chmod 777 /opt/dmdbms -R
Mac上使用 的Termius 通过 SSH 连接 CentOS;Mac Terminal 也可以使用:
ssh <用户名>@192.168.64.20
如果需要可视化,可以安装VNC ,但不是 DM8 安装的必需条件,只是为了方便从 Mac 进入 CentOS 图形桌面。下面给出一个简单的 TigerVNC + GNOME 配置,VNC 会话使用 dmdba,不要使用 root。
以 root 执行:
yum groupinstall -y "GNOME Desktop"
yum install -y tigervnc-server
切换到 dmdba,交互式设置密码:
su - dmdba vncpasswd mkdir -p ~/.vnc
以 root 复制 CentOS 7 自带的模板服务:
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
sed -i 's/<USER>/dmdba/g' /etc/systemd/system/vncserver@:1.service
systemctl daemon-reload
systemctl enable vncserver@:1
systemctl start vncserver@:1
systemctl status vncserver@:1 --no-pager
显示号 :1 默认对应 TCP 端口 5901。Mac 上可以使用系统屏幕共享打开:
open vnc://192.168.64.20:5901
如果 VNC 只用于执行命令,可以不安装 GNOME;Termius 或 Mac Terminal 已经足够完成 DM8 命令行安装。
本节只保留 DM8 单机安装的关键步骤:用户创建、软件安装、实例初始化、服务注册和启动。
回到 CentOS 后,以 root 检查设备并挂载:
unzip dm8_20260710_x86_CentOS7_64.zip mount -o loop /opt/dm8_20260710_x86_CentOS7_64.iso /mnt/ ls -lh /mnt/
### 8.4 安装 DM8 软件
使用 dmdba 执行安装程序:
cd /mnt
./DMInstall.bin -i ## -i 表示命令行安装
命令行安装时按实际安装程序提示选择:
安装结束后,如果程序提示使用 root 执行脚本,再切换到 root 执行安装程序显示的脚本。
su - root /opt/dmdbms/script/root/root_installer.sh
实际脚本路径以安装程序输出为准。
本次采用的初始化参数为:
命令参考:
./dminit PATH=/opt/dmdbms/data PAGE_SIZE=32 LOG_SIZE=2048 CHARSET=0 CASE_SENSITIVE=Y SYSDBA_PWD=****** SYSAUDITOR_PWD=******
##看到下面success 表示初始化成功。
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2025-09-18
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
log file path: /opt/dmdbms/data/DAMENG/DAMENG01.log
log file path: /opt/dmdbms/data/DAMENG/DAMENG02.log
write to dir [/opt/dmdbms/data/DAMENG].
create dm database success. 2025-04-03 11:10:57
以 root 执行。DM8 常用服务注册参数是 -dm_ini:
## dmdba 退出到root执行
[dmdba@dmdsc03 ~]$ exit
[root@~]# /opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /opt/dmdbms/data/DAMENG/dm.ini -p DMSERVER
Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service → /usr/lib/systemd/system/DmServiceDMSERVER.service.
创建服务(DmServiceDMSERVER)完成
[dmdba@dmdsc03 ~]$ /opt/dmdbms/bin/DmServiceDMSERVER start Starting DmServiceDMSERVER: [ OK ]
后续数据库实例配置,配置归档等更多参考
https://eco.dameng.com/document/dm/zh-cn/ops/installation-install.html#1.3.3%20Linux%20%E7%8E%AF%E5%A2%83
搭建成功主要分成四个判断:软件安装成功、实例初始化成功、服务启动成功、数据库可以连接。
以 dmdba 启动 disql,然后执行查询:
cd /opt/dmdbms/bin/
./disql username/password@IP:PORT
select name, status$ from v$database;
select * from v$version;
select path from v$datafile;
判断标准:
如果已经配置 VNC,可以使用 dmdba 登录 GNOME 桌面,从 DM8 安装目录或应用菜单启动 DM 管理工具:
## 在可视化页面执行
cd /opt/dmdbms/bin/
./manager.sh
这一步只是图形化连接验证,不作为 DM8 命令行安装成功的必要条件。
在 Apple Silicon Mac 上,VMware Fusion 不能直接运行 x86_64 CentOS 客户机。当前 DM8 包是 x86_64,所以没有继续用 Fusion 做这条安装主线。
Multipass 主要面向 Ubuntu 镜像。它适合快速创建 Ubuntu 测试机,但没有本次需要的可直接使用的 CentOS 7 镜像,因此不适合当前 DM8 CentOS 7 方案。
如果在 UTM 中选择 Virtualize/ARM64,CentOS 可能能够启动,但和 x86_64 DM8 安装介质不匹配。必须选择 Emulate/x86_64。
CentOS 7 默认 repo 可能无法访问。安装 tar、libaio、GNOME 或 TigerVNC 前,需要先切换到 Vault 源或者配置国内镜像源。
UTM 在 M3 上模拟 x86_64,任何操作包括安装和启动速度比 ARM 原生虚拟机慢,安装好后用Terminus远程显示和运行的速度差异不大。
DM8 软件安装完成,不代表数据库已经可以连接。完整顺序是:
安装软件 → 注册数据库服务 → 初始化实例 → 注册实例服务 → 启动实例服务 → disql 连接验证
如果 DM8 安装失败,优先关闭虚拟机并恢复安装前复制的 UTM 虚拟机文件,不要在未知状态的目录上重复执行 dminit。
如果需要卸载 DM8,先根据当前安装包提供的服务卸载脚本注销实例服务,再进入软件目录执行:
~~~bash
##进入DM安装目录
cd /DM_INSTALL_PATH
##执行卸载脚本
./uninstall.sh
卸载软件不等于删除 /dm8/data、归档和备份目录。数据目录是否删除,应单独确认;本文不提供批量删除命令。
文章
阅读量
获赞
