實驗環境
| 項目 | A 機 (主) | B 機 (備) |
| 主機名 | H80a | H80b |
| OS | AIX 5.1 |
| DB2 版本 | 8.1 |
| 實例名 | db2inst1 |
| 數據庫 | testdb |
| 共享 VG | 7133vg (外部存儲) |
用戶與組規劃(雙節點 ID 必須完全一致)
| 用戶/組 | UID/GID | 家目錄 | 備註 |
| db2inst1 / db2iadm1 | 209 / 206 | /home/db2inst1 (共享 LV) | 實例用戶 |
| db2fenc1 / db2fgrp1 | 210 / 103 | /home/db2fenc1 (共享 LV) | Fence 用戶 |
| dasusr1 / dasadm1 | 110/101 (A) 111/102 (B) | 本地 | DAS 用戶,各節點本地獨立 |
關鍵: 實例與 Fence 用戶 UID/GID 雙節點強制一致;DAS 用戶本地獨立即可。
共享存儲佈局
| LV 名稱 | 掛載點 | 用途 |
| db2inst1lv | /home/db2inst1 | 實例家目錄 |
| db2fenc1lv | /home/db2fenc1 | Fence 家目錄 |
| lv05 | /db2log | 日志文件 |
| db2databa | /db2data | 數據庫文件 |
節點 A 操作流程
- 創建共享 VG 7133vg 及上述 LV、文件系統。
- 建用戶/組(UID/GID 按表固定)。
- 掛載光盤
./db2setup 圖形化安裝(過程中建立 DAS 用戶/組)。
- 授權共享目錄:
chown -R db2inst1:db2iadm1 /home/db2inst1 /db2data /db2log 等。
- 創建實例:
cd /usr/opt/db2_08_01/instance; ./db2icrt -u db2fenc1 db2inst1
- 創建數據庫並調整日志路徑:
su - db2inst1
db2start
db2 "create database testdb on /db2data"
db2 "update db cfg for testdb using newlogpath /db2log"
db2 terminate
db2stop
- 卸載共享文件系統,
varyoffvg 7133vg 釋放存儲。
節點 B 操作流程
- 導入共享 VG:
importvg -y 7133vg hdiskX,掛載所有文件系統。
- 建同名用戶/組(UID/GID 與 A 節點完全一致)。
- 圖形化安裝 DB2(建立本地 DAS 用戶/組)。
- 創建實例(關鍵步驟保留共享 sqllib):
mv /home/db2inst1/sqllib /home/db2inst1/sqllib.a
./db2icrt -u db2fenc1 db2inst1
rm -R /home/db2inst1/sqllib
mv /home/db2inst1/sqllib.a /home/db2inst1/sqllib
cp /home/db2inst1/sqllib/db2nodes.cfg.b /home/db2inst1/sqllib/db2nodes.cfg
# 最後一行加入 HACMP 啟動腳本
- 同步
/etc/services 端口定義(雙節點端口號一致)。
- 啟動驗證:
su - db2inst1
db2start
db2 connect to testdb
# 連接成功 = 雙機安裝完成
關鍵配置文件
# A 節點 db2nodes.cfg.a
0 H80a 0
# B 節點 db2nodes.cfg.b
0 H80b 0
原則: db2nodes.cfg 主機名必須與運行節點主機名一致。HACMP 啟動腳本中以本地備份覆蓋共享 db2nodes.cfg,確保切換後配置正確。
避坑總結
- UID/GID 不一致 → 共享文件系統權限混亂。
db2nodes.cfg 未切換 → 節點啟動失敗或連接錯誤節點。
/etc/services 端口不一致 → 遠程連接失敗。
- DAS 用戶放共享存儲 → 雙節點衝突,必須本地獨立。
- 省略 HACMP 自身安裝配置(資源組、服務 IP、啟動/停止腳本綁定),生產必須完整部署。