ibmsvr1 (主跑 db2inst1)、ibmsvr2 (主跑 db2inst2)db2inst1 資源;反之亦然| 用戶 | UID | 群組 | GID | 用途 |
|---|---|---|---|---|
| db2inst1 | 2000 | db2iadm1 | 500 | 實例 1 擁有者 |
| db2fenc1 | 2001 | db2fadm1 | 501 | Fenced User 1 |
| db2as1 | 2005 | db2grp1 | 101 | DAS 用戶 1 |
| db2inst2 | 2002 | db2iadm2 | 502 | 實例 2 擁有者 |
| db2fenc2 | 2003 | db2fadm2 | 503 | Fenced User 2 |
| db2as2 | 2004 | db2grp2 | 102 | DAS 用戶 2 |
鐵律:對方節點不存在的用戶/群組必須手工建立,**UID/GID 必須完全一致**,否則容錯移轉後檔案權限錯亂。
| 節點 | VG | LV | 掛載點 | 大小 | 用途 |
|---|---|---|---|---|---|
| ibmsvr1 | mzvg (RAID1) | db2inst1lv | /home/db2inst1 | 512MB | 實例 1 檔案 |
| db2fenc1lv | /home/db2fenc1 | 256MB | Fenced 1 | ||
| db2as1lv | /home/db2as1 | 256MB | DAS 1 | ||
| db1lv | /db1 | 2GB | 實例 1 資料庫 | ||
| ibmsvr2 | zyvg (RAID5) | db2inst2lv | /home/db2inst2 | 512MB | 實例 2 檔案 |
| db2fenc2lv | /home/db2fenc2 | 256MB | Fenced 2 | ||
| db2as2lv | /home/db2as2 | 256MB | DAS 2 | ||
| db2lv | /db2 | 2GB | 實例 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
db2setup 兩節點分別指定不同實例用戶、群組db2inst1: 50000/tcp (連線)、50001/tcp (中斷)db2inst2: 50001/tcp (連線)、50002/tcp (中斷)/etc/services 兩節點**內容完全一致** (含對方實例埠號)/etc/services# db2hastart1
su - db2as1 -c 'db2admin start'
su - db2inst1 -c 'db2start'
# db2hastop1
su - db2as1 -c 'db2admin stop'
su - db2inst1 -c 'db2stop force'
db2nodes.cfg 節點配置檔切換機制每節點本地保留兩份備份,容錯移轉時複製對應版本覆蓋 ~/sqllib/db2nodes.cfg:
| 檔案 | ibmsvr1 內容 | ibmsvr2 內容 |
|---|---|---|
| db2nodes.cfg.bak.1 (本實例主) | 0 ibmsvr1 0 ibmsvr1_svc | 0 ibmsvr2 0 ibmsvr1_svc |
| db2nodes.cfg.bak.2 (對方實例主) | 0 ibmsvr1 0 ibmsvr2_svc | 0 ibmsvr2 0 ibmsvr2_svc |
db2inst1.start.shcp /usr/dbsh/db2nodes.cfg.bak.1 /home/db2inst1/sqllib/db2nodes.cfg
su - db2as1 -c 'db2admin start'
su - db2inst1 -c 'db2start'
db2inst1.stop.shsu - db2as1 -c 'db2admin stop'
su - db2inst1 -c 'db2stop force'
db2inst2 腳本同理替換用戶名。將四支腳本註冊至 HACMP 應用伺服器啟動/停止程式。
hacmp_standby 觸發 → 30 秒內服務切換完成、應用重連成功db2 connect to ...; select count(*) from core_table 結果一致db2diag.log、HACMP clstrmgr.debug 清潔DB2 8.1 HACMP 雙互備核心在於:**UID/GID 全域一致、共享儲存VG/LV 切換、db2nodes.cfg 動態切換、服務埠號預留、DAS 同步啟停**。此架構已服役超過十年,若新建專案建議直接採用 **DB2 11.5 + Pacemaker/Corosync 或 TSAMP**,原生支援多實例資源代理、自動化健康檢查、浮動 IP 管理,大幅簡化 HA 腳本開發與維護成本。