本小節說明高可用性資料庫 (HADB) 並說明如何設定和配置 HADB 以與應用程式伺服器配合使用。
本小節包含下列主題:
HADB 是具有水平可延伸性的資料庫,可獨立於應用程式伺服器階層之外執行和管理。它旨在使用負載平衡、容錯移轉和狀態回復功能,支援高達 99.999% 的服務和資料可用性。
Application Server 使用 HADB 儲存 HTTP 和有狀態階段作業 Bean (SFSB) 階段作業資料。如果不具有階段作業持續性機制,則在 Web 或 EJB 容器執行容錯移轉時,會遺失 HTTP 或 SFSB 階段作業狀態資料。
應用程式伺服器不負責狀態管理工作,這種作法的優點非常重要。應用程式伺服器實例在其生命週期內充當可延伸且高效能的 Java™ 2 Platform, Enterprise Edition (J2EE™ 平台) 容器,並將狀態複製功能委託給外部高可用性狀態服務。由於採用此鬆耦合架構,因此可以輕鬆將應用程式伺服器實例增加至叢集或從叢集中移除應用程式伺服器實例。您可以獨立地縮放 HADB 狀態複製服務的比例,以獲得最佳化可用性和效能。
高可用性是指無論發生由於升級而引起的預期故障,還是發生由於硬體或軟體故障所導致的未預期故障,系統仍然具有可用性。HADB 基於簡單資料模型和具有可延伸性的備援高效能技術。在高效能企業應用程式伺服器環境中,HADB 為傳送各種類型的階段作業狀態持續性提供了理想的平台。
下圖顯示了具有四個使用中節點和兩個備用節點的資料庫架構。節點 0 和 1 為鏡像節點對,節點 2 和 3 亦如此。
HADB 透過對資料進行分段和複製來實現資料的高可用性。資料庫中的所有表格均進行了分割,以建立大小大致相同的子集 (稱為片段)。分段程序基於在資料庫節點中平均分散資料的雜湊功能。每個片段儲存兩次,一次在資料庫中,一次在鏡像節點中。這可確保資料具有容錯和快速回復功能。此外,如果節點發生故障或關閉,備用節點會接管執行,直至該節點可重新使用時為止。
HADB 節點被組織為兩個資料備援單元 (DRU),這兩個單元互相鏡像。每個 DRU 均由半數使用中節點和半數備用節點組成,並包含該資料的一份完整副本。為確保具有容錯功能,支援某個 DRU 的電腦自身必須完全提供電源 (建議使用不間斷的電源供應)、處理單元以及儲存裝置。如果在一個 DRU 中發生斷電,則另一個 DRU 中的節點可以繼續處理請求,直至供電恢復正常。
如果不具有階段作業持續性機制,則在 Web 或 EJB 容器容錯移轉至另一個 Web 或 EJB 容器時,會遺失 HTTP 或 SFSB 階段作業狀態 (包括鈍化的階段作業狀態)。將 HADB 用於階段作業持續性可避免發生此情況。HADB 可在獨立但整合良好的持續性儲存階層中儲存和擷取狀態資訊。
刪除階段作業資料後,HADB 會收回空間。HADB 將階段作業資料記錄置於固定大小的區段中。刪除所有區段記錄後,會釋放該區段。可以隨機刪除區段記錄,這會在區段中建立孔。將新記錄插入至區段並需要連續空間時,會移除孔,並因此而壓縮該區段。
以上為架構的簡要概述。如需更多資訊,請參閱「Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Deployment Planning Guide」。
資料庫節點由一組程序、共用記憶體的專屬區域以及一個或多個輔助儲存裝置組成。資料庫可儲存、更新並擷取階段作業資料。每個節點均有一個鏡像節點,因此節點成對出現。此外,為最大化可用性,還包含兩個或更多備用節點 (每個 DRU 中包含一個),這樣,如果節點發生故障,備用節點便可在修復該節點時接管執行。
如需節點拓樸替代的說明,請參閱「Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Deployment Planning Guide」中的第 3 章「Selecting a Topology」。
與 Sun Java System Application Server Enterprise Edition 8.1 一起提供的 HADB 版本擁有許多新功能和改進的功能。
透過變更管理系統的基礎元件,改進了 HADB 管理。舊的 hadbm 介面功能略做修改後被保留下來。這些變更還移除了對 SSH/RSH 的相依性。
管理代理程式伺服器程序 (ma) 構成網域,並將資料庫配置儲存在儲存庫中。該儲存庫資訊會在所有代理程式之間分散。
以下主題提供更多詳細資訊︰
對此 HADB 版本進行了以下一般改進︰
HADB 不再需要 SSH/RSH。
HADB 管理的管理員密碼增強了安全性。
自動線上升級至新版本。
移除了對單一主機的相依性。
支援資料庫的異質性配置。可分別設定裝置路徑和歷程記錄路徑。
可統一管理多個平台。
與舊版本相比,此 HADB 版本包含以下變更。
現在需要 UDP 多重播送以用於網路配置。
現在需要在所有 HADB 主機上執行管理代理程式 ma。
用於網域管理的新 hadbm 指令︰hadbm createdomain、hadbm deletedomain、hadbm extenddomain、hadbm reducedomain、hadbm listdomain、hadbm disablehost。用於套裝軟體管理的新指令︰hadbm registerpackage、hadbm unregisterpackage、hadbm listpackage。
所有 hadbm 指令均具有以下新選項︰
adminpassword
adminpasswordfile
no-adminauthentication
agent
javahome
對 hadbm create 所做的變更︰
新選項︰
no-clear
no-cleanup
package
packagepath
agent
延伸選項
hosts (在網域中註冊主機)。
set
已移除的選項︰
inetd
inetdsetupdir
configpath
installpath
set TotalDataDevideSizePerNode
set managementProtocol
已修改的︰devicesize 現在為選擇性的,而非必需的。
hadbm startnode 和 hadbm restartnode 指令的 startlevel 選項有一個新值 clear。
對 hadbm addnodes 所做的變更︰新選項︰set、historypath、devicepath。移除了 inetdsetupdir 選項。
對 hadbm get 和 hadbm set 所做的變更︰新屬性為 historypath (歷史檔案的異質性路徑) 和 packagename。刪除的屬性為︰managementProtocol、TotalDeviceSizePerNode、installpath 以及 syslogging。
在就 HADB 問題致電用戶支援之前,請儘可能多地收集以下資訊︰
系統使用設定檔︰
同步運作的主動使用者的數目
被動使用者的數目
每秒進入系統的使用者的數目
平均階段作業大小
階段作業狀態逾時時間 (SessionTimeout 值)
每秒每個使用者的作業事件率
機器特性︰
RAM
CPU 的數目
CPU 速度
作業系統版本
實體磁碟數目
總磁碟大小
可用磁碟空間
資料傳輸容量
網路特性︰
傳輸容量
每個節點的主機名稱 (網路介面) 數目
HADB 資料︰
歷史檔案
cfg 和 meta 檔案,位於 dbconfigpath/databasename/nodeno 目錄中。dbconfigpath 在管理代理程式配置檔案中的變數 ma.server.dbconfigpath 中定義。
版本資訊 (hadbm --version)