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

DB2 8.1 HACMP 雙實例雙庫互備部署全紀錄:從硬體規劃到 HA 腳本的落地實戰

     編輯:DB2 教學

專案拓撲與硬體基線

  • 雙節點:ibmsvr1 (主跑 db2inst1)、ibmsvr2 (主跑 db2inst2)
  • 互備模式:節點 1 故障 → 節點 2 接管 db2inst1 資源;反之亦然
  • OS:AIX 5.1+;DB2 8.1;HACMP 5.x
  • 儲存:RAID 1 (系統/實例) + RAID 5 (資料),邏輯卷獨立掛載

使用者/群組/UID/GID 統一規劃 (兩節點完全一致)

用戶UID群組GID用途
db2inst12000db2iadm1500實例 1 擁有者
db2fenc12001db2fadm1501Fenced User 1
db2as12005db2grp1101DAS 用戶 1
db2inst22002db2iadm2502實例 2 擁有者
db2fenc22003db2fadm2503Fenced User 2
db2as22004db2grp2102DAS 用戶 2

鐵律:對方節點不存在的用戶/群組必須手工建立,**UID/GID 必須完全一致**,否則容錯移轉後檔案權限錯亂。

檔案系統與邏輯卷佈局

節點VGLV掛載點大小用途
ibmsvr1mzvg (RAID1)db2inst1lv/home/db2inst1512MB實例 1 檔案
db2fenc1lv/home/db2fenc1256MBFenced 1
db2as1lv/home/db2as1256MBDAS 1
db1lv/db12GB實例 1 資料庫
ibmsvr2zyvg (RAID5)db2inst2lv/home/db2inst2512MB實例 2 檔案
db2fenc2lv/home/db2fenc2256MBFenced 2
db2as2lv/home/db2as2256MBDAS 2
db2lv/db22GB實例 2 資料庫

容錯移轉時,HACMP 透過 VG 切換自動掛載對方邏輯卷。

權限修正腳本 db2chown (兩節點同步執行)

chown -R db2inst1:db2iadm1 /home/db2inst1
chown -R db2inst2:db2iadm2 /home/db2inst2
chown -R db2fenc1:db2fadm1 /home/db2fenc1
chown -R db2fenc2:db2fadm2 /home/db2fenc2
chown -R db2as1:db2grp1 /home/db2as1
chown -R db2as2:db2grp2 /home/db2as2
chown -R db2inst1:db2iadm1 /db1
chown -R db2inst2:db2iadm2 /db2

DB2 安裝關鍵差異化配置

  • db2setup 兩節點分別指定不同實例用戶、群組
  • 服務名/埠號區隔:
    • db2inst1: 50000/tcp (連線)、50001/tcp (中斷)
    • db2inst2: 50001/tcp (連線)、50002/tcp (中斷)
  • /etc/services 兩節點**內容完全一致** (含對方實例埠號)
  • DB2 8.1 FCM 埠號 (每實例 4 連續埠,預設 60000 起) 亦需手工同步至 /etc/services

HA 腳本演進:DB2 7.2 → 8.1 關鍵差異

7.2 版本:簡單啟停

# db2hastart1
su - db2as1 -c 'db2admin start'
su - db2inst1 -c 'db2start'

# db2hastop1
su - db2as1 -c 'db2admin stop'
su - db2inst1 -c 'db2stop force'

8.1 版本:db2nodes.cfg 節點配置檔切換機制

每節點本地保留兩份備份,容錯移轉時複製對應版本覆蓋 ~/sqllib/db2nodes.cfg:

檔案ibmsvr1 內容ibmsvr2 內容
db2nodes.cfg.bak.1 (本實例主)0 ibmsvr1 0 ibmsvr1_svc0 ibmsvr2 0 ibmsvr1_svc
db2nodes.cfg.bak.2 (對方實例主)0 ibmsvr1 0 ibmsvr2_svc0 ibmsvr2 0 ibmsvr2_svc

8.1 啟動腳本 db2inst1.start.sh

cp /usr/dbsh/db2nodes.cfg.bak.1 /home/db2inst1/sqllib/db2nodes.cfg
su - db2as1 -c 'db2admin start'
su - db2inst1 -c 'db2start'

8.1 停止腳本 db2inst1.stop.sh

su - db2as1 -c 'db2admin stop'
su - db2inst1 -c 'db2stop force'

db2inst2 腳本同理替換用戶名。將四支腳本註冊至 HACMP 應用伺服器啟動/停止程式。

驗收測試清單

  1. 計畫性切換:hacmp_standby 觸發 → 30 秒內服務切換完成、應用重連成功
  2. 非計畫故障模擬:斷電/網卡下線 → HACMP 心跳超時 → 資源群組漂移 → DB2 實例在線
  3. 資料一致性:切換前後 db2 connect to ...; select count(*) from core_table 結果一致
  4. 日誌無殘留錯誤:db2diag.log、HACMP clstrmgr.debug 清潔

總結與遷移建議

DB2 8.1 HACMP 雙互備核心在於:**UID/GID 全域一致、共享儲存VG/LV 切換、db2nodes.cfg 動態切換、服務埠號預留、DAS 同步啟停**。此架構已服役超過十年,若新建專案建議直接採用 **DB2 11.5 + Pacemaker/Corosync 或 TSAMP**,原生支援多實例資源代理、自動化健康檢查、浮動 IP 管理,大幅簡化 HA 腳本開發與維護成本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved