| 群組 | 用戶 | 角色 | 備註 |
|---|---|---|---|
| dasgrp | dasusr | DAS(管理伺服器)用戶 | 管理 db2admin 服務 |
| instgrp | instusr | 實例擁有者 | 同時歸屬 dasgrp,擁有實例級權限 |
| fencgrp | fencusr | 受保護用戶(Fenced UDF/SP) | 執行不受信任的用戶代碼,隔離實例進程 |
為每個用戶建立家目錄、設定密碼、配置 /etc/profile 環境變數(DB2INSTANCE、PATH)。
圖形化 db2setup 在無 X Server 或庫依賴缺失時會靜默退出。db2_install 為純命令列模式,無圖形依賴,適合自動化腳本與最小化安裝環境。
# 掛載/解壓產品映像後
cd /mnt/db2_image
./db2_install
# 互動式選擇產品關鍵字(如 ESE、CLIENT、RTCL),或靜默模式:
./db2_install -p ESE -l /var/log/db2_install.log
# 切換至實例建立腳本目錄(依版本路徑調整)
cd /opt/IBM/DB2/V11.1/instance
# 1. 建立 DAS(僅需一次)
./dascrt -u dasusr
# 2. 建立資料庫實例(32/64 位元需指定 -w)
./db2icrt -w 64 -u fencusr instusr
# -w 64 指定 64 位元實例;若省略在 64 位元 OS 上可能報「配置檔初始化失敗」
# 3. 連結配置檔(視部署架構決定)
cd /cfg
./db2ln
# 切換至實例擁有者
su - instusr
# 設定通訊協定(全域或 -i 指定實例)
db2set -g DB2COMM=TCPIP
# 啟動實例(注意:若授權為試用版,系統時間需在授權有效期內,否則報 License 過期)
db2start
# 建立 SAMPLE 資料庫並驗證
db2sampl
db2 "SELECT * FROM staff"
db2
# 進入 CLP 提示符
db2 => CONNECT TO SAMPLE
db2 => BIND sample.bnd
# 基本 DDL/DML 驗證
db2 => CREATE DATABASE MYDB
db2 => CONNECT TO MYDB USER instusr
db2 => CREATE SCHEMA MYSCHEMA
db2 => CREATE TABLE MYSCHEMA.MYTABLE (ID INT, NAME VARCHAR(30))
db2 => INSERT INTO MYSCHEMA.MYTABLE VALUES (101, 'Bruce Lu')
db2 => SELECT * FROM MYSCHEMA.MYTABLE
# 輸出: 101 Bruce Lu
db2 => DROP TABLE MYSCHEMA.MYTABLE
db2 => DROP SCHEMA MYSCHEMA RESTRICT
db2 => CONNECT RESET
db2 => DROP DATABASE MYDB
db2 => DB2STOP
db2 => QUIT
| 現象 | 根因 | 對策 |
|---|---|---|
| db2icrt 報「配置檔無法初始化」 | 未指定 -w 32|64 位元寬度 | 明確加上 -w 64(64 位元 OS) |
| db2start 報 License 過期 | 系統時間超出試用授權日期範圍 | 修正系統時間或導入永久授權檔 db2licm -a |
| 實例建立後無法遠端連線 | 未設定 DB2COMM=TCPIP 或防火牆阻擋 50000 埠 | db2set -g DB2COMM=TCPIP + db2stop/start + 開放埠口 |
| fencusr 執行 UDF 失敗 | fencusr 無家目錄或 shell 受限 | 確保 /home/fencusr 存在、shell 為 /bin/bash |
/var/log/db2_install.log/home/instusr/sqllib/db2nodes.cfg、db2profile/home/dasusr/das/profile遵循「三組三用戶 → db2_install → 實例建立 → 通訊配置 → 驗證腳本」標準化流程,可將 DB2 Linux/UNIX 部署從「經驗式嘗試」轉型為「可重複、可審計、可自動化」的工程化交付能力。