HADB 是包含成對節點的分散式系統。節點會分成兩個資料備援單元 (DRU),每個節點來自每個 DRU 的每對節點,如資料備援單元中所述。
每個節點包含:
作業事件狀態複製的一組程序
在程序間通訊時所使用的專屬共用記憶體區域。
一或多個輔助儲存裝置 (磁碟)。
可代管一或多個階段作業資料庫的一組 HADB 節點。 每個階段作業資料庫與不同的應用程式伺服器叢集相關聯。刪除叢集也會刪除相關聯的階段作業資料庫。
如需 HADB 硬體需求的資訊,請參閱「Sun Java System Application Server 9.1 版本說明」中的「硬體和軟體需求」。
HADB 節點有兩種類型:
每個節點皆有一個父程序和數個子程序。父程序又稱為節點監督員 (NSUP),由管理代理程式啟動。父程序負責建立子程序並將其保持在執行狀態。
子程序包含:
作業事件伺服器程序 (TRANS) 可協調分散式節點上的作業事件,並管理資料儲存。
關聯代數伺服器程序 (RELALG) 可協調並執行複合關聯代數查詢,例如排序和連結。
SQL 共用記憶體伺服器程序 (SQLSHM) 可維護 SQL 字典快取。
SQL 伺服器程序 (SQLC) 可接收用戶端查詢、將查詢編譯為本機 HADB 指示、將指示傳送至 TRANS、接收結果,然後將結果傳遞至用戶端。每個節點針對每個用戶端連線會有一個主要的 SQL 伺服器和一個輔助伺服器。
節點管理員伺服器程序 (NOMAN),讓管理代理程式用來執行 hadbm 管理用戶端所發出的管理指令。
如前所述,每個 HADB 實例包含一對 DRU。每個 DRU 與配對中另一個 DRU 有相同數目的使用中節點及備用節點。DRU 中的每個使用中節點在另一個 DRU 中有 鏡像節點。由於鏡像的原因,每個 DRU 會包含完整的資料庫複本。
下圖顯示內含六個節點的 HADB 架構範例:四個使用中節點與兩個備用節點。節點 0 與 1、2 與 3 是鏡像組。在此範例中,每個主機有一個節點。一般來說,若主機有足夠的系統資源,便可有多個節點 (請參閱系統需求)。
您必須增加代管成對 HADB 節點的機器,每個 DRU 中有一部機器。
HADB 透過複製資料與服務可達成高可用性。鏡像節點上的資料複本會指定為主要複本與緊急待命複本。主要複本會執行插入、刪除、更新與讀取等作業。緊急待命複本會接收主要複本作業的記錄,並在作業事件存留時間內加以重做。僅有主要節點可執行讀取作業,因此不會記錄。每個節點皆包含主要複本與緊急待命複本,並扮演這兩個角色。資料庫會分段並分散至 DRU 中的使用中節點。鏡像組中的各節點包含相同的一組資料片段。複製鏡像節點中的資料稱為複製。複製可讓 HADB 提供高可用性:當節點故障時,鏡像節點幾乎會立即接管 (幾秒內)。複製可確保可用性並使人無法察覺節點故障或 DRU 故障,而不致失去資料或無法提供服務。
當鏡像節點接管故障節點的功能時,必須執行雙份工作:也就是自己的工作以及故障節點的工作。若鏡像節點的資源不足,超載情況會降低節點的效能並增加節點故障的可能性。當節點故障時,HADB 會嘗試重新啟動節點。若故障的節點無法重新啟動 (例如由於硬體故障),系統會繼續運作但可用性會降低。
HADB 可容許一個節點、整個 DRU 或多個節點故障,但無法容許節點與鏡像節點同時故障的「雙重故障」。如需有關如何降低雙重故障可能性的資訊,請參閱減少雙重故障的機會。
當節點故障時,其鏡像節點會接管故障的節點。若故障的節點沒有備用節點,則此時故障的節點將無鏡像節點。備用節點會自動取代故障節點的鏡像節點。擁有備用節點可降低系統沒有鏡像節點的運作時間。
備用節點一般不含資料,但會不斷監視 DRU 中使用中節點是否故障。當節點故障且在指定逾時期間未回復時,備用節點會從鏡像節點複製資料並與之同步化。所需的時間視複製的資料量及系統與網路能力而定。進行同步化之後,備用節點會無須手動介入而自動取代鏡像節點,從而解除鏡像節點的超載情況,而平衡鏡像節點的負載。這又稱為故障回復或自我修復。
修復故障的主機 (透過更換硬體或升級軟體) 並重新啟動時,由於原始備用節點現在變成使用中,因此在此主機上執行的一或多個節點,會加入系統成為備用節點。
備用節點不是必要項目,但這些節點可讓系統即使在機器故障時,也可維持其服務整體水準。備用節點亦可簡化在代管使用中節點的機器上,執行規劃維護的作業。為每個 DRU 配置一部機器作為備用機器,如此一來,若其中一部機器故障,HADB 系統便可繼續,而不會對效能與可用性造成不良影響。
一般來說,請以具有足夠應用程式伺服器實例與 HADB 節點的備用機器,取代無法使用的任何機器。
下列範例說明如何在 HADB 部署中使用備用節點。可能的部署拓樸有兩種:並置,在此拓樸中,HADB 與 Application Server 位於相同的主機上;以及個別層級,在此拓樸中,HADB 與 Application Server 位於不同的主機上。如需有關部署拓樸的更多資訊,請參閱第 3 章, 選取拓樸。
在此備用節點配置範例中,假設您有一個內含四部 Sun FireTM V480 伺服器的並置拓樸,其中每部伺服器有一個應用程式伺服器實例與兩個 HADB 資料節點。
請為備用節點額外配置兩部伺服器 (每個 DRU 一部機器)。每個備用機器執行一個應用程式伺服器實例以及兩個備用 HADB 節點。
假設您有一個個別層級的拓樸,其中 HADB 層有兩部 Sun FireTM 280R 伺服器,每部伺服器執行兩個 HADB 資料節點。若要在即使一部機器無法使用的情況下,維持此系統的完整能力,請為應用程式伺服器實例層與 HADB 層各配置一部備用機器。
應用程式伺服器實例層的備用機器,必須和應用程式伺服器實例層中其他機器有相同數目的實例。同理,HADB 層的備用機器,必須和 HADB 層中其他機器有相同數目的 HADB 節點。