高可用性 (HA) 指業務依賴的資料在需要時可用,目標為消除或最小化停機。災難恢復 (DR) 側重防止災難性故障導致資料遺失。本文聚焦 HA。
資料庫解決方案包含三層軟體:使用者應用、用戶端軟體、資料庫引擎,以及硬體、網路、儲存、作業系統等資源。HA 設計須全盤考量,非僅資料庫引擎層面。SQL 交易分「讀」與「寫」:讀交易需一致性視圖,寫交易需持久化。業務需求 (正常運行時間、交易一致性) 驅動 HA 方案選型。
資料庫引擎隨時可用,停機時間不可感知 (零秒或秒級),需高度冗余。三種基本設計:
| 設計模式 | 核心概念 | 優點 | 缺點 |
|---|---|---|---|
| 程式化可用性 | 應用層實作分散式交易,多系統並行,單點故障不中斷其他系統 | 最大彈性 | 開發成本高、不支援封裝應用、複雜度高、需自行解決同步、非確定性函數、非原子預存程序問題 |
| 共享可用性 | 冗余系統共享關鍵資源 (儲存、鎖機制、計時器),單點故障其他成員接管 | 極高可用性、擴展性、無需修改應用 | 成本高、需專用硬體、實作需專業技能、僅 z/OS 支援 (Parallel Sysplex + Coupling Facility) |
| 多重副本可用性 | 多資料庫副本分散負載,故障切換至其他副本。xkoto Gridscale 提供同步複寫與負載平衡 | 極高可用性、擴展性、無需修改應用、易實作管理、成本較低 (商用硬體) | 需額外軟體/硬體管理、中等成本增加 |

故障發生至恢復間存在短暫不可用窗口。核心要素:主/備系統、故障偵測、資料源移轉。分同步與非同步:
| 方案 | 描述 | 優點 | 缺點 |
|---|---|---|---|
| 專用 HA 軟體 (TSA, Veritas, HACMP, MSCS, Sun Cluster, Steeleye) | 資料庫軟體與 HA 軟體緊密整合形成 HA 叢集,共享儲存單一資料庫副本,故障時移轉資源 (磁碟、網路、DB2 服務) | 資料庫永遠同步、無需修改應用/用戶端、自動故障偵測轉移、不降低效能、無資料複寫冗余 | 需額外軟體/技能、需符合 HA 標準的外部儲存、儲存距離限制 |
| 磁碟儲存複寫 (PPRC 等) | 專用儲存硬體/軟體同步複寫磁碟區塊至備援站點 | 資料庫永遠同步、無需修改應用/用戶端 | 需專用儲存、距離限制、備援系統無法分擔資料庫負載、所有寫入必須正確順序回放 |
| DB2 HADR (High Availability Disaster Recovery) | 基於 DB2 日誌機制的高效能資料庫複寫,主系統執行交易同步傳送日誌至備用系統,故障時角色切換 | 資料庫同步、無需修改應用/用戶端、安裝維護簡單、效能影響極小、AIX/Linux 內建自動故障轉移 (DB2 HA Feature 整合 TSA)、支援滾動升級 | 需額外伺服器/儲存、備用系統無法同時處理資料庫負載、不複寫無日誌操作 |

特點:極度彈性、多作用中副本、無距離限制、但固有非同步、有效能開銷、非所有資料庫變更皆複寫 (系統目錄變更需手動同步)。

伺服器故障導致用戶端連線中斷,ACR 讓 DB2 用戶端自動重連原始或備用伺服器。備用伺服器資訊存於伺服器端參數,首次連線時快取至用戶端。偵測到通訊錯誤時輪詢嘗試重連。注意:ACR 不重播進行中交易,未提交工作需應用程式重新執行。 WebSphere 中介軟體具 ACR 感知能力,進一步降低複雜度。

DB2 9.5 提供豐富 HA 選項,本文為依環境選擇最適方案提供決策指引。