首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

IBM DB2 9 分區環境(DPF)部署實戰(二):NFS 共享驗證與主文件系統構建

     編輯:DB2 教學

承接上篇:從補丁安裝到共享存儲就緒

上篇完成了 db2_install 与最新 Fix Pack 安裝,本篇聚焦 **DPF 核心前置條件——NFS 共享文件系統的驗證、創建、導出與掛載**,確保多節點實例能共享 /db2home(實例主目錄)與後續數據容器。

一、安裝 Fix Pack(補丁包)

# 解壓補丁包(通常為 .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 升級實例,減少停機風險與潛在元數據不兼容問題。

二、驗證 NFS 服務狀態(每節點必做)

# AIX 下檢查 NFS 子系統
lssrc -g nfs

輸出中 Status 應為 active,關鍵守護進程必須運行:

  • nfsd(NFS 服務端)
  • biod(塊 I/O 守護)
  • rpc.lockd(分布式鎖管理)
  • rpc.statd(狀態監視)

若缺失,用 startsrc -s <subsystem> 啟動並設為自啟:chssys -s <subsystem> -a '-auto'。

三、創建 DB2 主文件系統(/db2home)

建議大小 ≥ 1 GB(含實例配置、日誌、腳本、診斷文件)。

3.1 在主節點 (ServerA) 創建 JFS2 文件系統

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

3.2 NFS 導出 /db2home(ServerA)

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

3.3 其餘節點掛載 /db2home(ServerB/C/D)

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

四、掛載參數最佳實踐說明

五、驗證共享文件系統一致性

# 在所有節點執行
touch /db2home/test_write_$(hostname)
ls -l /db2home/test_write_*
# 應看到四個文件,擁有者均為實例用戶 (如 db2inst1)
rm /db2home/test_write_*

若任一節點權限不足或掛載點不一致,db2icrt 創建實例時會失敗。

六、常見故障與排查

  1. 掛載點權限錯誤:/db2home 擁有者必須是實例用戶(db2inst1:db2iadm1),模式 750 或 770。
  2. rpc.lockd **未啟動**:表現為 db2start 卡住或 SQL1220N;檢查 lssrc -s rpc.lockd。
  3. 防火牆阻擋 2049/111 端口:AIX ipsec 或 Linux firewalld 需放行 NFS/RPC 端口。
  4. 時間不同步:NFSv4 鎖依賴時間戳,所有節點必須運行 ntpd/chronyd,偏差 < 1 秒。

七、下一步預告

共享存儲就緒後,下篇將演示:
• db2icrt -p db2c_db2inst1 -s ese db2inst1 創建 DPF 實例
• db2nodes.cfg 規劃邏輯分區映射
• db2start 驗證多節點啟動
• 建庫 CREATE DATABASE … ON /db2data … 並驗證分區並行度

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
參數推薦值理由
hard硬掛載NFS 暫時不可用時進程阻塞重試,避免 DB2 進程收到 I/O 錯誤而 Crash
intr允許中斷允許 Ctrl+C 打斷掛起的 NFS 操作
rsize/wsize32768 (32KB)匹配 DB2 預取/寫入大小,減少 RPC 交互次數
vers=4NFSv4支持 ACL、狀態化鎖、更好防火牆穿透
timeo=60060 秒 (單位 0.1s)網絡抖動時給足重試時間
_netdev/etc/fstab 選項告知系統「網絡就緒後再掛載」,避免開機掛載失敗