高可用性是重要數據庫應用程序的關鍵需求。IBM DB2 9.5 提供了很多特性來滿足這一需求。如果您對分布式平台上的 DB2 還不是很了解,或者已經使用過一陣子,您可能會發現這組處理可用性的特性令人困惑。什麼時候使用哪個特性,當使用特性時,您希望完成什麼目標?
在開始之前,我們先來定義術語高可用性(HA)的意義。HA 是指要求在依賴性應用程序需要數據時能夠提供數據。其目的是消除或盡量避免停機。與 HA 相關的一個術語是災難恢復(Disaster Recovery,DR),DR 與 HA 的不同之處在於,它側重於保護數據,防止因災難性故障導致數據丟失。本文只關注 HA。
術語和客戶機/服務器數據庫架構
術語和客戶機/服務器數據庫架構
我們首先討論一些術語和概念,這對理解高可用性十分重要。
一個數據庫解決方案包括三個部分的軟件:
·用戶應用程序
·客戶機軟件
·數據庫引擎
除了軟件,要得到一個有效的解決方案,還必須擁有一些其他資源:
·服務器硬件
·網絡連接
·磁盤存儲
·操作系統
當設計一個 HA 解決方案時,必須考慮所有這些方面。僅僅使數據庫引擎高度可用未必就能創建出一個 HA 解決方案。HA 解決方案的設計並不完全是一個技術問題,它還必須考慮其他一些因素,例如解決方案的成本、技能需求以及管理需求。
數據庫應用程序是基於客戶機/服務器的。應用程序能否產生一致的結果,取決於數據庫軟件的完整性。雖然這一點是顯而易見的,但是它在選擇和設計解決方案時十分重要。
SQL 事務可分為兩種類型:讀和寫。讀事務是不需要插入、更新或刪除活動的選擇語句。而寫事務則要更改至少一個數據庫。讀事務需要數據的一致視圖 —— 即當同時提交兩個讀事務時,如果它們選擇相同的數據范圍,那麼應該產生一致的結果集。寫事務要求提交的數據庫更改被持久化,即使出現故障時也是如此。業務需求會影響到什麼 HA 解決方案是可用的或者是最適合的。通常,HA 解決方案的設計由兩個因素驅動,正常運行時間(uptime)需求和事務一致性。如果業務要求更高的可用性,並且讀一致性不是很重要,那麼選擇異步可能是更經濟的方法。另一方面,如果事務一致性是關鍵需求,那麼則需要選擇更加同步的解決方案。如果事務一致性和可用性都是必需的,那麼將進一步縮小可選擇的范圍。