Sun Java System Application Server 9.1 部署規劃指南

HADB 管理系統

HADB 管理系統提供內建安全性並協助多平台的管理。如下圖所述,HADB 管理架構包含下列元件:

如圖所示,執行 HADB 服務的每部機器上會執行一個 HADB 管理代理程式。每部機器一般會代管一或多個 HADB 節點。HADB 管理網域類似 Application Server 網域,包含許多機器。一個網域中至少需有兩部機器,資料庫才有容錯能力,且一般來說,機器的數目必須是偶數才可組成 DRU 組。因此,一個網域可包含許多管理代理程式。

如圖所示,一個網域可包含一或多個資料庫實例。一部機器可包含一或多個屬於一或多個資料庫實例的節點。

管理用戶端

HADB 管理用戶端是指令行公用程式 hadbm,用於管理 HADB 網域及其資料庫實例。HADB 服務可持續執行 (即使相關聯的應用程式伺服器叢集停止亦然),但如果要刪除,則必須小心關閉。如需有關使用 hadbm 的更多資訊,請參閱「Sun Java System Application Server 9.1 高可用性管理指南」中的第 3 章「管理高可用性資料庫」

您可以使用 asadmin 指令行公用程式建立及刪除與高可用性叢集相關聯的 HADB 實例。如需更多資訊,請參閱「Sun Java System Application Server 9.1 高可用性管理指南」中的第 9 章「配置高可用性階段作業持續性和容錯移轉」

管理代理程式

管理代理程式是伺服器程序 (名為 ma),可存取主機上的資源;例如,它可建立裝置並啟動資料庫程序。管理代理程式會協調及執行管理用戶端指令,例如啟動或停止資料庫實例。

管理用戶端透過指定代理程式的位址與連接埠號碼,連線至管理代理程式。連線之後,管理用戶端就會透過管理代理程式將指令傳送至 HADB。代理程式接收到請求後會加以執行。因此,管理代理程式必須執行於主機上,才可對該主機發出任何 hadbm 管理指令。您可將管理代理程式配置為自動啟動的系統服務。

確保管理代理程式的可用性

管理代理程式程序可在 HADB 節點監督員程序失敗時將其重新啟動,從而確保 HADB 節點監督員程序的可用性。因此,對於部署,您必須確保 ma 程序的可用性,才可維持 HADB 的整體可用性。重新啟動後,管理代理程式會從系統網域的其他代理程式,回復網域與資料庫配置資料。

使用主機作業系統 (OS) 以確保管理代理程式的可用性。在 Solaris 或 Linux 上,init.d 可確保 ma 程序在程序失敗並重新啟動作業系統之後的可用性。在 Windows 上,管理代理程式會以 Windows 服務執行。因此,若代理程式故障或作業系統重新啟動,作業系統便會重新啟動管理代理程式。

管理網域

HADB 管理網域是一組主機,每個主機有在相同連接埠號碼上執行的管理代理程式。網域中的主機可包含一或多個 HADB 資料庫實例。定義管理網域的方法,是依據代理程式所使用的共用連接埠號碼,以及建立網域或增加代理程式至網域時所產生的識別碼 (稱為 domainkey)。domainkey 提供唯一的網域識別碼,這點極為重要,因為管理代理程式使用多重播送進行通訊。您可以設定 HADB 管理網域對應 Application Server 網域。

在一個網域中有多個資料庫實例有助於開發環境,因為如此可讓不同的開發人員群組使用自己的資料庫實例。在某些情況下,也有助於生產環境。

屬於同一個網域的所有代理程式會協調其管理作業。當您透過 hadbm 指令變更資料庫配置時,所有代理程式會隨之變更配置。除非節點的主機上有執行的管理代理程式,否則您無法停止或重新啟動節點。但是,您可以在無法使用某些代理程式的情況下執行 hadbm 指令,以讀取 HADB 狀態或配置變數值。

使用下列管理用戶端指令處理管理網域:

儲存庫

管理代理程式會將資料庫配置儲存在儲存庫。由於儲存庫會在所有管理代理程式之間進行複製,因此容錯能力很高。將配置保留在伺服器上,可讓您從任何安裝管理用戶端的電腦上執行管理作業。

必須執行網域中的大部分管理代理程式,才可對儲存庫進行任何變更。因此,若網域中有 M 個代理程式,至少必須執行 M/2 + 1 個代理程式 (無條件捨去到整數),才可對儲存庫進行變更。

若網域中有些主機無法使用 (例如由於硬體故障),且您因為沒有配額而無法執行某些管理指令,請使用 hadbm disablehost 指令從網域移除故障的主機。