概述
達夢數據庫 (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` (具體根據連接要求)。
- 填寫正確信息后即可連接成功,進行數據庫管理操作。