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

高階 DBA 實戰筆記:資料庫叢集技術深度解析與雙機熱備建置全紀錄

     編輯:DB2 教學

叢集基礎與高可用性 (HA) 概念

叢集將多台伺服器以單一系統影像對外服務。HA 叢集專注於故障時的服務持續性,常見形式為「雙機熱備」:

  • Active-Standby (主-備):單一業務僅在主機運行,備機待命。
  • Active-Active (雙主):兩業務分跑兩機,互為備援。

依資料同步機制分為:

  1. 同步可用 (Shared Storage):共享磁碟陣列,故障時切換掛載權。
  2. 非同步可用 (Independent Storage):資料複寫/日誌傳送/暫掛 I/O 分割鏡像,維持獨立副本。

同步可用:共享存儲雙機熱備原理

同步可用架構

三大關鍵技術:

  • 心跳偵測:雙節點透過專用連線 (串口/網路) 交換心跳封包,判斷對方存活。
  • 資源移轉:叢集管理軟體將共享存儲掛載點、虛擬 IP、DB2 服務從主節點移至備節點。
  • 自動回切:auto_failback on 讓修復後的主節點重新接管資源。

非同步可用三大選項比較

選項核心機制特點
資料複寫捕獲源庫變更 → 寫入變更表 → 應用至目標庫邏輯級複寫,支援異構,延遲較低
日誌傳送整份交易日誌傳至備庫 → 前滾重放物理級同步,RPO 接近零,備庫唯讀
暫掛 I/O (分割鏡像)暫停主庫 I/O → 快速分割鏡像 → 掛載備庫儲存層面瞬間複製,對主庫影響極短

資料複寫選項 日誌傳送選項 暫掛 I/O 選項

實戰:Heartbeat 搭建 Linux 雙機同步熱備 (CentOS 5 / DB2 V9.5)

環境規劃

角色主機名IP備註
PrimaryPrimary192.168.168.131主 DB2、掛載共享存儲
StandbyStandby192.168.168.135備 DB2、待命
NFS ServerNfsserver192.168.168.129提供 /database 共享目錄
Cluster VIP-192.168.168.100客戶端連接入口

心跳連線:串口 /dev/ttyS0 直連雙節點。

關鍵配置步驟

  1. /etc/hosts 映射三節點名稱與 IP,ping 驗證。
  2. 串口測試:cat < /dev/ttyS0 (Standby) 接收 echo "test" > /dev/ttyS0 (Primary)。
  3. NFS 共享:Server /etc/exports 開放 /database rw,Client mount Nfsserver:/database /database。
  4. DB2 實例與資料庫:雙節點建立同用戶 db2ha1、同實例名 db2ha1。Primary CREATE DATABASE HADB ON /database,Standby CATALOG DATABASE HADB ON /database。
  5. Heartbeat 安裝與配置:
    # 依賴套件
    yum install perl-TimeDate perl-MailTools
    # 安裝 RPM (依序)
    rpm -ivh heartbeat-pils-* heartbeat-stonith-* heartbeat-*
    # 複製範本
    cp /usr/share/doc/packages/heartbeat/{ha.cf,authkeys,haresources} /etc/ha.d/
    
  6. authkeys:啟用 auth 1 / 1 crc,chmod 600。
  7. ha.cf:
    serial /dev/ttyS0
    auto_failback on
    node Primary
    node Standby
    use_logd yes
    crm yes
    
  8. haresources:定義資源群組
    Primary 192.168.168.100 Filesystem::Nfsserver:/database::/database::nfs::rw,hard db2::db2ha1
    
    轉換為 CRM XML:haresources2cib.py。
  9. 同步配置至 Standby:scp 複製 /etc/ha.d/* 及 /var/lib/heartbeat/crm/cib.xml。

啟動與驗證

/etc/init.d/heartbeat start   # 先 Primary,再 Standby
crm_mon -i5                   # 監控叢集狀態

叢集狀態 Primary+Standby

測試故障切換:停止 Primary heartbeat,觀察 VIP、NFS 掛載、DB2 服務自動移至 Standby;重啟 Primary 後資源自動回切 (auto_failback)。

資料一致性驗證

  1. Primary 插入測試資料:INSERT INTO test VALUES('msg01','Hello Cluster')。
  2. 停止 Primary heartbeat,Standby 接管。
  3. Standby 查詢 SELECT * FROM test,資料完整呈現。

Standby 查詢驗證

常見問題排查技巧

  1. 節點互不發現:檢查 /etc/hosts 與 uname -n 一致性;關閉防火牆 service iptables stop 測試。
  2. 心跳非串口:改用雙網卡,ha.cf 改 bcast eth1。
  3. 資源啟動失敗無錯誤:檢查 /etc/init.d/ 或 /etc/ha.d/resource.d/ 對應腳本邏輯。

小結

共享存儲雙機熱備部署簡單、成本較低,適合單機房高可用需求。非同步方案雖投資較大,但消除單點存儲風險,支援異地災備,詳細配置見第 3 章 HADR 實作。

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