概述
达梦数据库 (DM8
) 无法直接在 Apple macOS
操作系统上原生安装,通常需要通过虚拟机(如 Parallels Desktop
、VMware Fusion
)进行部署。另一种更轻量级且受 macOS
支持的方案是利用 Docker
容器技术来构建开发与测试环境。本文档将详细介绍如何在搭载 Apple Silicon
芯片 (ARM 架构) 的 macOS
上,通过 Docker Desktop
安装并运行达梦数据库 DM8
。
Docker Desktop 安装与配置
- 软件下载:
- 访问
Docker
官方网站下载Docker Desktop
:https://www.docker.com/products/docker-desktop/。
- 访问
- 注意: 国内用户可能无法直接访问官网,请确保网络环境允许访问。
- 下载完成后,选择适用于 Apple silicon (ARM64) 的安装包。
- 安装步骤:
- 双击下载的
.dmg
文件。 - 将 Docker 图标拖拽到
Applications
文件夹中完成安装。
- 双击下载的
+ 在应用程序文件夹中找到并启动 Docker Desktop。+ 首次启动时,通常会提示登录 Docker Hub 账户,可选择 跳过 (Skip) 此步骤进行基本使用。
- 基本验证:
- 安装完成后,可通过系统终端 (
Terminal
) 或Docker Desktop
自带的终端执行 Docker 命令进行验证(例如docker --version
)。
- 安装完成后,可通过系统终端 (
Docker Desktop
界面可直观管理容器和镜像。
导入达梦 DM8 Docker 镜像
- 加载镜像文件:
- 达梦数据库 DM8 的 Docker 镜像文件(如
dm8_20241230_HWarm_kylin10_64_rq_ent_8.1.4.6_pack20.tar
)。 - 在终端中使用
docker load
命令导入镜像:
- 达梦数据库 DM8 的 Docker 镜像文件(如
docker load -i dm8_20241230_HWarm_kylin10_64_rq_ent_8.1.4.6_pack20.tar
- 终端将显示加载过程及最终镜像信息(镜像 ID、标签等)。
rgy@MacBook-Air Downloads % docker load -i dm8_20241230_HWarm_kylin10_64_rq_ent_8.1.4.6_pack20.tar
353c81134611: Loading layer [==================================================>] 68.13MB/68.13MB
a2a1ef173d3f: Loading layer [==================================================>] 13.81MB/13.81MB
3bf081f10a0a: Loading layer [==================================================>] 25.6kB/25.6kB
57a258bbc540: Loading layer [==================================================>] 10.74MB/10.74MB
c6a50133aad7: Loading layer [==================================================>] 693MB/693MB
a968f06b1730: Loading layer [==================================================>] 2.56kB/2.56kB
e7e89f098e9a: Loading layer [==================================================>] 2.56kB/2.56kB
a08640b6af93: Loading layer [==================================================>] 2.56kB/2.56kB
3acf0a3d1475: Loading layer [==================================================>] 5.12kB/5.12kB
6886d5000ac7: Loading layer [==================================================>] 5.12kB/5.12kB
3871deeeb66b: Loading layer [==================================================>] 4.608kB/4.608kB
0d53b70e744c: Loading layer [==================================================>] 3.072kB/3.072kB
a4398027ff10: Loading layer [==================================================>] 15.36kB/15.36kB
3f422d2e61a6: Loading layer [==================================================>] 15.36kB/15.36kB
c827a1081359: Loading layer [==================================================>] 2.56kB/2.56kB
f2e33479badf: Loading layer [==================================================>] 2.56kB/2.56kB
3d6384cf4028: Loading layer [==================================================>] 4.096kB/4.096kB
df481b01e958: Loading layer [==================================================>] 4.096kB/4.096kB
f2e1e05adddb: Loading layer [==================================================>] 4.096kB/4.096kB
Loaded image: dm8:dm8_20241230_rev255012_HWarm_kylin10_64
rgy@MacBook-Air Downloads %
- 确认镜像导入成功:
- 使用
docker images
命令查看本地镜像列表,确认 DM8 镜像已存在:
- 使用
docker images
# 输出示例:
# REPOSITORY TAG IMAGE ID CREATED SIZE
# dm8 dm8_20241230_rev255012_HWarm_kylin10_64 51453ae9e0ea 7 months ago 782MB
部署 DM8 单机实例
- 启动容器命令
-
使用
docker run
命令启动一个运行 DM8 的容器。务必设置满足复杂度要求的系统管理员 (SYSDBA
) 和安全管理员 (SYSAUDITOR
) 密码,否则容器可能启动失败。 -
关键参数说明:
-d
: 后台运行容器。-p 30236:5236
: 将容器内部的 DM8 数据库默认端口 (5236) 映射到宿主机的 30236 端口。--restart=always
: 容器退出时自动重启。--name dm8_test
: 为容器命名。--privileged=true
: 赋予容器较高权限(通常用于数据库容器)。-e
: 设置环境变量。MODE=dmsingle
: 单机模式。PAGE_SIZE=16
: 数据库页大小 (16K)。CASE_SENSITIVE=1
: 标识符大小写敏感。UNICODE_FLAG=1
: 启用 Unicode 支持。SYSDBA_PWD=Dameng_123
: 系统管理员 (SYSDBA) 密码 (请使用强密码)。SYSAUDITOR_PWD=Dameng_123
: 安全管理员 (SYSAUDITOR) 密码 (请使用强密码)。LD_LIBRARY_PATH=/opt/dmdbms/bin
: 库文件路径。INSTANCE_NAME=dm8_8146
: 实例名称。
-v
: 挂载数据卷。-v /Users/rgy/dmdata:/opt/dmdbms/data
: 将宿主机的/Users/rgy/dmdata
目录挂载到容器内的数据库数据目录 (强烈建议用于持久化数据)。-v dm8:/opt/dmdbms/log
: 使用 Docker 管理的卷dm8
挂载到日志目录 (也可使用主机路径)。
dm8:dm8_20241230_rev255012_HWarm_kylin10_64
: 指定使用的镜像及标签。
-
完整启动命令示例:
-
docker run -d \-p 30236:5236 \--restart=always \--name dm8_test \--privileged=true \-e MODE=dmsingle \-e PAGE_SIZE=16 \-e CASE_SENSITIVE=1 \-e UNICODE_FLAG=1 \-e SYSDBA_PWD=Dameng_123 \-e SYSAUDITOR_PWD=Dameng_123 \-e LD_LIBRARY_PATH=/opt/dmdbms/bin \-e INSTANCE_NAME=dm8_8146 \-v /Users/rgy/dmdata:/opt/dmdbms/data \-v dm8:/opt/dmdbms/log \dm8:dm8_20241230_rev255012_HWarm_kylin10_64
- 监控启动日志:
- 容器启动后,可通过
Docker Desktop
的图形界面查看容器日志,确认数据库初始化是否成功。
- 容器启动后,可通过
- 成功初始化后,可在挂载的主机目录
/Users/rgy/dmdata
下看到数据库文件:
连接与验证数据库
- 通过容器终端连接:
- 使用
Docker Desktop
进入dm8_test
容器的终端界面。
- 使用
- 在容器内使用达梦命令行工具
disql
连接数据库:
cd /opt/dmdbms/bin
./disql SYSDBA/Dameng_123@localhost:5236
- 执行 SQL 查询验证实例信息(如
SELECT * FROM V$INSTANCE;
)。
- 使用图形化管理工具 (
SQLark
):
由于官方达梦管理工具 (DM Manager
) 暂无 macOS
版本,可使用 SQLark
(https://www.sqlark.com) 工具进行连接管理。
- 在 SQLark 中新建达梦数据库连接:
主机 (
Host
):localhost
或Docker
宿主机的 IP (如果从宿主机外部连接)。
端口 (`Port`): `30236` (即 Docker 映射的宿主机端口)。
用户名 (`Username`): `SYSDBA`
密码 (`Password`): `Dameng_123`
数据库 (`Database`): 通常可留空或尝试 `SYSDBA` (具体根据连接要求)。
- 填写正确信息后即可连接成功,进行数据库管理操作。