DM8數據庫Docker鏡像部署最佳實踐
- 一、Docker加載DM8鏡像
- 二、Docker創建DM8容器
- 三、驗證目錄是否掛載成功
一、Docker加載DM8鏡像
1.下載DM8鏡像,由于官網暫未提供docker鏡像下載,可通過網盤下載:https://pan.quark.cn/s/fe38ba821a2a
2.打開命令行工具cd進鏡像下載目錄,運行:docker load -i dm8_20241022_x86_rh6_64_single.tar加載鏡像
3.命令行工具運行:docker images,查看鏡像是否加載成功
二、Docker創建DM8容器
1.命令行工具運行:docker run -d --name dm8 -p 5236:5236 dm8_single:dm8_20241022_rev244896_x86_rh6_64,啟動容器(dm8_single:dm8_20241022_rev244896_x86_rh6_64 = 鏡像name:鏡像tag)
2.docker查看數據目錄、日志目錄、配置文件目錄路徑,其中配置文件在數據目錄,由于展開不利于截圖,自行查找dm.ini文件
3.掛載目錄避免數據丟失:在宿主機新建DM>data、DM>log文件夾,由于配置文件在數據目錄這里就不進行創建
4.運行docker stop dm8 && docker rm dm8刪除原本的臨時容器,使用下面命令重啟容器
/*****
-p:主機端口:容器端口
-d:啟動的鏡像名稱。
--name:設置容器名稱。
--restart=always:設置docker啟動時,容器跟隨自啟。
-e SYSDBA_PWD="SYSDBA123":設置密碼為SYSDBA123,鏡像默認密碼:SYSDBA001,默認賬戶:SYSDBA
-v /d/WSL/Docker/DM/data:/opt/dmdbms/data:掛載容器存儲文件到宿主,避免因不小心卸載容器或者容器損壞導致數據丟失不可找回風險,,如果是linux系統宿主機不需要加盤符,直接使用/就代表宿主機的根目錄
-v /d/WSL/Docker/DM/log:/opt/dmdbms/log:掛載日志目錄,便于查找日志,如果是linux系統宿主機不需要加盤符,直接使用/就代表宿主機的根目錄
*****/docker run -d --name dm8 --restart=always -p 5236:5236 -v /d/WSL/Docker/DM/data:/opt/dmdbms/data -v /d/WSL/Docker/DM/log:/opt/dmdbms/log -e SYSDBA_PWD="SYSDBA123" dm8_single:dm8_20241022_rev244896_x86_rh6_64
5.測試登錄
6.dminit命令行工具參數,可通過-e設置,如:-e SYSDBA_PWD="SYSDBA123"設置密碼
參數名 | 參數描述 | 注意事項 |
---|---|---|
INI_FILE | 指定初始化配置文件路徑 | 需確保文件路徑正確且可讀寫 |
PATH | 數據庫文件存放路徑 | 路徑需為空目錄或允許覆蓋 |
CTL_PATH | 控制文件路徑 | 建議與數據文件分開存儲以提高安全性 |
LOG_PATH | 日志文件路徑 | 需確保有足夠空間存儲日志 |
EXTENT_SIZE | 數據文件擴展大小(MB) | 默認16MB,建議根據數據量調整 |
PAGE_SIZE | 頁大小(KB),可選4/8/16/32 | 一旦設定不可更改,需根據應用場景選擇 |
LOG_SIZE | 日志文件大小(MB) | 需滿足事務量需求,過小會導致頻繁切換 |
CASE_SENSITIVE | 標識符大小寫敏感(Y/N) | 默認為Y,與兼容性相關,需謹慎選擇 |
CHARSET/UNICODE_FLAG | 字符集(0/1),0-GBK,1-UTF8 | 需與應用程序字符集一致 |
SEC_PRIV_MODE | 安全權限模式(0/1/2) | 0-傳統模式,1-自主訪問控制,2-強制訪問控制 |
SYSDBA_PWD | SYSDBA用戶密碼 | 建議設置復雜密碼 |
SYSAUDITOR_PWD | SYSAUDITOR用戶密碼 | 審計管理員密碼,安全場景下必設 |
DB_NAME | 數據庫名 | 需唯一且符合命名規范 |
INSTANCE_NAME | 實例名 | 單機環境下通常與DB_NAME一致 |
PORT_NUM | 數據庫服務監聽端口 | 需確保端口未被占用 |
BUFFER | 系統緩沖區大小(MB) | 影響性能,建議為可用內存的50-70% |
TIME_ZONE | 時區設置(如+08:00) | 需與服務器時區一致 |
PAGE_CHECK/PAGE_HASH_NAME | 頁校驗算法 | 影響性能與安全性,建議開啟 |
EXTERNAL_CIPHER/HASH/CRYPTO_NAME | 外部加密/哈希/加密算法名稱 | 需確保算法庫可用 |
RLOG_ENCRYPT_NAME | 日志加密算法 | 安全場景建議啟用 |
RLOG_POSTFIX_NAME | 日志文件后綴 | 默認.log,無特殊需求不建議修改 |
USBKEY_PIN | USBKEY PIN碼 | 使用USBKEY認證時必填 |
PAGE_ENC_SLICE_SIZE | 頁加密分片大小 | 影響加密性能,默認4096字節 |
ENCRYPT_NAME | 數據庫加密算法 | 需與安全策略一致,啟用后不可更改 |
BLANK_PAD_MODE | 空格填充模式(0/1) | 影響字符串比較,兼容Oracle需設為1 |
SYSTEM/MAIN/ROLL_MIRROR_PATH | 系統/主/回滾文件鏡像路徑 | 提高可靠性,建議配置 |
MAL/ARCH/MPP_FLAG | 啟用MAL(消息代理)/歸檔/MPP(大規模并行)標志(Y/N) | 分布式或高可用場景需開啟 |
CONTROL | 控制文件副本數 | 建議≥2以提高容錯 |
AUTO_OVERWRITE | 自動覆蓋已有文件(Y/N) | 謹慎使用,會導致數據丟失 |
USE_NEW_HASH | 使用新哈希算法(Y/N) | 影響兼容性,默認N |
ELOG_PATH | 錯誤日志路徑 | 需定期清理 |
AP_PORT_NUM | 輔助端口號 | 集群環境可能需要 |
HUGE_WITH_DELTA | 是否使用HUGE表Delta存儲(Y/N) | 列存儲表優化選項 |
RLOG_GEN_FOR_HUGE | 為HUGE表生成日志(Y/N) | 影響性能與可恢復性 |
PSEG_MGR_FLAG | 管理永久段空間(Y/N) | 默認Y,不建議修改 |
CHAR_FIX_STORAGE | CHAR類型定長存儲(Y/N) | 影響存儲效率 |
SQL_LOG_FORBID | 禁止SQL日志(Y/N) | 調試場景臨時關閉 |
DPC_MODE | 分布式PC模式(0/1/2) | 集群環境配置 |
SYSSSSO/SYSDBO_PWD | SYSSSSO(安全管理員)/SYSDBO(運維管理員)密碼 | 三權分立模式下必設 |
PRIV_FLAG | 權限標志位(十六進制) | 高級安全設置,需參考手冊 |
MAIN/SYSTEM/ROLL/TEMP_DB | 主/系統/回滾/臨時數據文件路徑 | 建議分開存儲以提高性能 |
F_PATH | ||
USE_DB_NAME | 是否使用DB_NAME作為實例名(Y/N) | 默認N,兼容性選項 |
ENABLE_MAC | 啟用強制訪問控制(Y/N) | 安全等保場景需開啟 |
RANDOM_CRYPTO | 使用隨機加密(Y/N) | 增強安全性,但可能影響性能 |
AUTO_ADJ_PARA/MEM/CPUS | 自動調整參數/內存/CPU(Y/N) | 建議首次安裝時啟用 |
HELP | 顯示幫助信息 | 無實際參數作用 |
三、驗證目錄是否掛載成功
1.驗證日志目錄是否掛載成功:查看宿主機log目錄,包含下面圖片log文件。說明掛載成功
2.驗證數據目錄是否掛載成功:數據庫連接dm成功后,運行下面sql 創建數據
3.驗證數據目錄是否掛載成功:運行docker stop dm8 && docker rm dm8刪除容器,重新使用之前的命令運行容器
4.驗證數據目錄是否掛載成功:連接數據庫,重新查詢之前創建的表,數據存在說明數據目錄掛載成功