上篇完成了 db2_install 与最新 Fix Pack 安裝,本篇聚焦 **DPF 核心前置條件——NFS 共享文件系統的驗證、創建、導出與掛載**,確保多節點實例能共享 /db2home(實例主目錄)與後續數據容器。
# 解壓補丁包(通常為 .tar.gz 或 .bz2)
gzip -d DB2-9.1-FPxx.tar.gz
tar -xvf DB2-9.1-FPxx.tar
cd DB2-9.1-FPxx
./installFixPak -y # -y 靜默接受許可
**為何先打補丁再建實例?** 避免後續執行 db2iupdt 升級實例,減少停機風險與潛在元數據不兼容問題。
# AIX 下檢查 NFS 子系統
lssrc -g nfs
輸出中 Status 應為 active,關鍵守護進程必須運行:
nfsd(NFS 服務端)biod(塊 I/O 守護)rpc.lockd(分布式鎖管理)rpc.statd(狀態監視)若缺失,用 startsrc -s <subsystem> 啟動並設為自啟:chssys -s <subsystem> -a '-auto'。
建議大小 ≥ 1 GB(含實例配置、日誌、腳本、診斷文件)。
smit jfs
→ Add a Journaled File System
→ Add a Standard Journaled File System
→ Volume Group Name: 選擇既有 VG (如 db2vg)
→ SIZE of file system (in 512-byte blocks): 2097152 # 1 GB = 2,097,152 blocks
→ MOUNT POINT: /db2home
→ Mount AUTOMATICALLY at system restart: yes
→ 其他默認
或命令行:
crfs -v jfs2 -g db2vg -a size=2097152 -m /db2home -A yes -p rw -t no
mount /db2home
smit nfs
→ Network File System (NFS)
→ Add a Directory to Exports List
→ PATHNAME of directory to export: /db2home
→ HOSTS allowed root access: ServerA,ServerB,ServerC,ServerD
# 若使用高速互連(如 InfiniBand),建議同時填寫 IB 主機名
→ 其他默認(read-write, secure)
等效命令:
echo "/db2home -vers=4 -access=root=ServerA:ServerB:ServerC:ServerD" >> /etc/exports
exportfs -a
smit nfs
→ Network File System (NFS)
→ Add a File System for Mounting
→ PATHNAME of mount point: /db2home
→ HOST where directory resides: ServerA
→ REMOTE directory: /db2home
→ Mount NOW: yes
→ Mount AUTOMATICALLY at system restart: yes
→ MOUNT options: rw,hard,intr,rsize=32768,wsize=32768,vers=4,timeo=600
命令行持久化:
echo "ServerA:/db2home /db2home nfs4 rw,hard,intr,rsize=32768,wsize=32768,vers=4,timeo=600 0 0" >> /etc/filesystems
mount /db2home
| 參數 | 推薦值 | 理由 |
|---|---|---|
| hard | 硬掛載 | NFS 暫時不可用時進程阻塞重試,避免 DB2 進程收到 I/O 錯誤而 Crash |
| intr | 允許中斷 | 允許 Ctrl+C 打斷掛起的 NFS 操作 |
| rsize/wsize | 32768 (32KB) | 匹配 DB2 預取/寫入大小,減少 RPC 交互次數 |
| vers=4 | NFSv4 | 支持 ACL、狀態化鎖、更好防火牆穿透 |
| timeo=600 | 60 秒 (單位 0.1s) | 網絡抖動時給足重試時間 |
| _netdev | /etc/fstab 選項 | 告知系統「網絡就緒後再掛載」,避免開機掛載失敗 |