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

DB2 啟用 HACMP Smart Assist 完整實施指南:AIX 上打造企業級高可用叢集

     編輯:DB2 教學

架構總覽

  • HACMP:AIX 原生高可用叢集管理器,監控應用/資源故障,自動故障轉移。
  • Smart Assist:預置 DB2/WebSphere/Oracle 配置模板,大幅簡化 HACMP 整合工作量。
  • 支援版本:DB2 UDB V8.1 / V8.2 (非 DPF 分區實例)。
  • 拓撲假設:Node1 (Primary) ↔ Node2 (Standby),共享儲存 db2vg1。

Phase 1:共享儲存佈建 (Node1 執行)

方法 A:C-SPOC (推薦)

smitty hacmp → System Management (C-SPOC)
→ HACMP Logical Volume Management
→ Shared Volume Groups → Create a Shared Volume Group

方法 B:AIX 原生指令

# umask 022
# mkvg -f -V 70 -y db2vg1 hdisk1
# chvg -an db2vg1                    # 關閉開機自動 varyon
# mklv -t jfs2 -y dbinstance1 db2vg1 128
# crfs -v jfs2 -d dbinstance1 -m /dbinstance1 -A no
# mount /dbinstance1

方法 C:SMIT 互動式

smitty vg → Add a volume group → Add an original volume group (名稱 db2vg1, 物理卷 hdisk1, 自動激活=NO)
smitty lv → Add a Logical Volume (VG=db2vg1, LV=dbinstance1, LPs=128, PV=hdisk1, Type=jfs2)
smitty fs → Add/Change/Show/Delete File Systems → Enhanced Journaled File Systems → Add on Previously Defined LV (LV=dbinstance1, 掛載點=/dbinstance1, 自動掛載=no)

Phase 2:使用者與群組同步 (Node1 建立 → 複製至 Node2)

# mkgroup id=515 dasadm1
# mkuser id=515 pgrp=dasadm1 home=/dbinstance1/dasusr1 dasusr1
# passwd dasusr1; pwdadm -c dasusr1

# mkgroup id=516 db2grp1
# mkgroup id=517 db2fgrp1
# mkuser id=516 pgrp=db2grp1 groups=db2grp1,dasadm1 home=/dbinstance1/db2inst1 db2inst1
# mkuser id=517 pgrp=db2grp1 home=/dbinstance1/db2fenc1 db2fenc1
# passwd db2inst1; pwdadm -c db2inst1
# passwd db2fenc1; pwdadm -c db2fenc1

將 /etc/passwd, /etc/group, /etc/security/passwd, /etc/security/group, /etc/security/user 相關條目複製到 Node2。

Phase 3:Node1 安裝 DB2 與建立共享實例

  1. 滿足前提:磁碟/記憶體、產品映像、X Windows、DISPLAY 導出。
  2. ./db2setup → Typical → Do not setup an instance (手工建立共享實例)。
  3. 安裝完成關閉 Fault Monitor:
    chitab fmc:2:off:/usr/opt/db2_08_02/bin/db2fmcd
  4. 建立共享實例並驗證:
    # /usr/opt/db2_08_02/instance/db2icrt -a SERVER -s ese -u db2fenc1 -w 32 -p db2c_db2inst1 db2inst1
    # su - db2inst1
    db2start; db2sampl; db2 "connect to sample"; db2 "select * from staff where dept=20"; db2 terminate; db2stop; exit

Phase 4:Node2 安裝 DB2 並驗證故障轉移

  1. Node1 卸載共享儲存:
    umount /dbinstance1; varyoffvg db2vg1
  2. Node2 匯入並掛載:
    importvg -V 70 -y db2vg1 hdisk3; chvg -an db2vg1; mount /dbinstance1
  3. Node2 執行 ./db2setup (同 Phase 3 選項) → 關閉 Fault Monitor。
  4. 複製 Node1 /etc/services DB2 連接埠條目至 Node2:
    DB2_db2inst1 60000/tcp ... DB2_db2inst1_END 60003/tcp
  5. 修改 Node2 /dbinstance1/db2inst1/sqllib/db2nodes.cfg:第 2 欄主機名改為 Node1 主機名。
  6. Node2 臨時將主機名設為 Node1 主機名:
    smitty hostname → set the Hostname
  7. 驗證 Node2 能啟動實例並查詢 SAMPLE (同 Phase 3 驗證步驟)。

Phase 5:Mutual Takeover (雙主互備) 可選擴充

建立第二共享卷組 db2vg2、第二實例 db2inst2、第二資料庫,步驟同上。確保雙向故障轉移腳本對稱。

Phase 6:HACMP 整合 DB2 Smart Assist

  1. 所有節點安裝 HACMP、配置 /etc/hosts、建立叢集基礎設施。
  2. 配置服務 IP 標籤:
    smitty hacmp → Extended Configuration → Extended Resource Configuration → HACMP Extended Resources Configuration → Configure Service IP Labels/Address → Add a service IP Label/Address → Configurable to multiple nodes
  3. 同步叢集配置:
    smitty hacmp → Initialization and Standard Configuration → Verify and Synchronize HACMP Configuration
  4. 新增 DB2 應用程式:
    smitty hacmp → Initialization and Standard Configuration → Configuration Assistants → Make Applications Highly Available (Use Smart Assists) → Add an Application to the HACMP Configuration
  5. Smart Assist 選擇器顯示節點確認無誤 → 選擇 DB2 Smart Assistant → 填寫:應用名稱、故障轉移節點、監控資料庫、服務 IP 標籤 → Enter 完成。

驗收檢查清單

  • [ ] 共享 VG 於兩節點可互相 varyonvg/mount。
  • [ ] UID/GID 兩節點完全一致。
  • [ ] DB2 實例在兩節點均能手工啟動/停止/查詢。
  • [ ] db2nodes.cfg 主機名指向 Primary 節點。
  • [ ] HACMP 服務 IP 可在兩節點漂移。
  • [ ] Smart Assist 產生的應用程式資源組啟動/停止/監控腳本無誤。
  • [ ] 執行計畫性故障轉移演練,確認 RTO/RPO 符合 SLA。

常見坑點提醒

  • 實例主目錄**必須**在共享 VG 上,否則 Smart Assist 會驗證失敗。
  • chvg -an 關閉開機自動 varyon,避免雙節點同時掛載導致檔案系統損毀。
  • Node2 修改主機名僅為驗證實例啟動之臨時手段,**生產環境不應永久修改主機名**,HACMP 整合後由服務 IP 漂移處理網路身分。
  • DB2 Fault Monitor (db2fmcd) 在 HACMP 環境**必須關閉**,由 HACMP 接管進程監控。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved