Sun Java System Application Server Enterprise Edition 8.1 2005Q2 高可用性管理指南

準備 HADB 設定

本小節論述以下主題︰

先決條件

設定和配置 HADB 之前,請確保您的環境符合以下需求︰

配置網路備援

配置備援網路後,即使單一網路發生故障,HADB 也仍然可用。您可以使用以下兩種方式配置備援網路︰

設定網路多重路徑

設定網路多重路徑之前,請參閱「IP Network Multipathing Administration Guide」中的「Administering Network Multipathing」一節。

Procedure若要配置已使用 IP 多重路徑的 HADB 主機電腦,請執行以下步驟︰

  1. 設定網路介面故障偵測時間。

    為了讓 HADB 能夠正確支援多重路徑容錯移轉,網路介面故障偵測時間不得超過1 秒 (1000 毫秒),此時間由 /etc/default/mpathd 中的 FAILURE_DETECTION_TIME 參數指定。如果此參數的原始值較高,請編輯檔案並將此參數值變更為 1000:


    FAILURE_DETECTION_TIME=1000

    若要使變更生效,請使用以下指令︰


    pkill -HUP in.mpathd
  2. 設定 IP 位址以與 HADB 配合使用。

    如「IP Network Multipathing Administration Guide」中所述,多重路徑必須將實體網路介面分組為多重路徑介面群組。在此群組中的每個實體介面均具有兩個相關的 IP 位址︰

    • 用於傳輸資料的實體介面位址。

    • 僅供 Solaris 內部使用的測試位址。

    使用 hadbm create --hosts 時,請從多重路徑群組中僅指定一個實體介面位址。


範例 2–1 設定多重路徑

假設具有兩個名為 host1 和 host2 的主機電腦。如果它們分別具有兩個實體網路介面,則將這兩個介面設定為多重路徑群組。在每台主機上均執行 ifconfig -a

host1 上的輸出為︰


bge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4>
mtu 1500 index 5 inet 129.159.115.10 netmask ffffff00 broadcast 129.159.115.255 
groupname mp0

bge0:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER>
mtu 1500 index 5 inet 129.159.115.11 netmask ffffff00 broadcast 129.159.115.255

bge1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 
mtu 1500 index 6 inet 129.159.115.12 netmask ffffff00 broadcast 129.159.115.255 
groupname mp0

bge1:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> 
mtu 1500 index 6 inet 129.159.115.13 netmask ff000000 broadcast 129.159.115.255

host2 上的輸出為︰


bge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 
mtu 1500 index 3 inet 129.159.115.20 netmask ffffff00 broadcast 129.159.115.255 
groupname mp0

bge0:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> 
mtu 1500 index 3 inet 129.159.115.21 netmask ff000000 broadcast 129.159.115.255

bge1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 
mtu 1500 index 4 inet 129.159.115.22 netmask ffffff00 broadcast 129.159.115.255 
groupname mp0

bge1:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> 
mtu 1500 index 4 inet 129.159.115.23 netmask ff000000 broadcast 129.159.115.255

在此範例中,兩台主機上的實體網路介面列示在 bge0bge1 之後。在 bge0:1bge1:1 之後列出的介面是多重路徑測試介面 (在 ifconfig 輸出中標示為 DEPRECATED),如「IP Network Multipathing Administration Guide」中所述。

若要在此環境中設定 HADB,請從每個主機中選取一個實體介面。在此範例中,HADB 在 host1 中使用 IP 位址 129.159.115.10,在 host2 中使用 129.159.115.20。若要在每個主機上使用一個資料庫節點建立資料庫,請使用指令 hadbm create --host。例如:


hadbm create --host 129.159.115.10,129.159.115.20

若要在每個主機上使用兩個資料庫節點建立資料庫,請使用以下指令:


hadbm create --host 129.159.115.10,129.159.115.20,
129.159.115.10,129.159.115.20

在這兩種情況下,您必須在 host1 和 host2 上使用獨立參數配置代理程式,以指定代理程式應使用機器上的哪個介面。因此,在 host1 上使用︰


ma.server.mainternal.interfaces=129.159.115.10

在 host2 上使用︰


ma.server.mainternal.interfaces=129.159.115.20

如需有關 ma.server.mainternal.interfaces 變數的資訊,請參閱配置檔案


配置雙網路

若要啟用 HADB 以容許單一網路故障,請使用 IP 多重路徑 (如果受諸如 Solaris 之類的作業系統支援)。請勿在 Windows Server 2003 上配置具有雙網路的 HADB—作業系統在雙網路狀態下無法正常工作。

如果未將作業系統配置為使用 IP 多重路徑,且 HADB 主機配備兩個 NIC,則您可以將 HADB 配置為使用雙網路。對於每台主機,每個網路介面卡 (NIC) 的 IP 位址均必須位於獨立的 IP 子網路上。

在資料庫中,所有節點均必須連線至單一網路,或所有節點均必須連線至兩個網路。


備註 –

必須將子網路之間的路由器配置為可在子網路之間轉寄 UDP 多重播送訊息。


建立 HADB 資料庫時,請使用 –hosts 選項為每個節點指定兩個 IP 位址或主機名稱︰每個 NIC IP 位址對應一個 IP 位址或主機名稱。對於每個節點,第一個 IP 位址位於 net-0 上,第二個 IP 位址位於 net-1 上。語法如下所示,其中同一節點的主機名稱以加號 (+) 分隔︰

--hosts=node0net0name+node0net1name
,node1net0name+node1net1name
,node2net0name+node2net1name
, ...

例如,以下引數可建立兩個節點,每個節點均具有兩個網路介面。以下主機選項用於建立這些節點︰

--hosts 10.10.116.61+10.10.124.61,10.10.116.62+10.10.124.62

因此,node0 的網路位址為

請注意,10.10.116.6110.10.116.62 位於同一子網路上,而 10.10.124.6110.10.124.62 位於同一子網路上。

在此範例中,管理代理程式必須使用同一子網路。因此,舉例來說,必須將配置變數 ma.server.mainternal.interfaces 設定為 10.10.116.0/24。此設定可同時用於此範例中的兩個代理程式。

配置共用記憶體和信號

在安裝 HADB 之前,必須先配置共用記憶體和信號。該程序視您的作業系統而定。

Procedure在 Solaris 上配置共用記憶體和信號

  1. 以超級使用者身份登入。

  2. 配置共用記憶體。

    shmmax 的值設定為 HADB 主機電腦上實體記憶體的大小。共用記憶體區段的最大大小必須大於 HADB 資料庫緩衝區池的大小。例如,對於具有 2 GB (0x8000000 十六進制) 主記憶體的機器,將以下內容增加至 /etc/system 檔案︰


    set shmsys:shminfo_shmmax=0x80000000
     set shmsys:shminfo_shmseg=20

    在 Solaris 9 以及更高版本中,shmsys:shminfo_shmseg 已停用。

    shminfo_shmmax 設定為系統的記憶體總容量 (以十六進制表示法顯示的 0x80000000 值,表示 2 GB 的記憶體)。


    備註 –

    使用記憶體大小的十六進制值指定 shmsys:shminfo_shmmax 的值。若要確定主機的記憶體,請使用以下指令︰


    prtconf | grep Memory

  3. 配置信號。

    檢查 /etc/system 檔案,以查找信號配置項目。此檔案可能已包含 semmnisemmnssemmnu 項目。例如︰


    set semsys:seminfo_semmni=10
    set semsys:seminfo_semmns=60
    set semsys:seminfo_semmnu=30

    如果這些項目已存在,請將這些值分別增加 16、128 和 1000。這樣,上述範例中的項目將變更為︰


    set semsys:seminfo_semmni=26
    set semsys:seminfo_semmns=188
    set semsys:seminfo_semmnu=1030

    如果 /etc/system 檔案不包含這些項目,請將它們增加至檔案的結尾處︰


    set semsys:seminfo_semmni=16
    set semsys:seminfo_semmns=128
    set semsys:seminfo_semmnu=1000

    此作業足可使電腦上執行多達 16 個 HADB 節點。如需設定多於 16 個節點的資訊,請參閱「Sun Java System Application Server Enterprise Edition 8.1 2005Q1 Performance Tuning Guide」中的 HADB 章節。

  4. 重新開機。

Procedure在 Linux 上配置共用記憶體

  1. 以超級使用者身份登入。

  2. 編輯檔案 /etc/sysctl.conf

  3. 設定 kernel.shmaxkernel.shmall 參數。

    kernel.shmax 參數定義共用記憶體區段的最大大小 (以位元組為單位)。kernel.shmall 參數可設定在系統上一次使用的共用記憶體總大小 (以頁為單位)。將這些參數的值設定為機器上實體記憶體的大小。將值指定為十進位位元組數。例如,對於一台具有 512 MB 實體記憶體的機器:


    kernel.shmmax=536870912
     kernel.shmall=536870912
  4. 重新開機。使用以下指令︰

    sync; sync; reboot

用於 Windows 的程序

Windows 不需要任何特殊的系統設定。但是,如果您要使用現有的 J2SE 安裝,請將 JAVA_HOME 環境變數設定至安裝 J2SE 的位置。

同步化系統時鐘

您必須在 HADB 主機上同步化時鐘,因為 HADB 使用基於系統時鐘的時間戳記。HADB 使用系統時鐘來管理逾時和為記錄至歷史檔案中的事件標註時間戳記。對於疑難排解,由於 HADB 是分散式系統,所以必須同時分析所有歷史檔案。因此,同步化所有主機的時鐘非常重要。

請勿在正在執行的 HADB 系統上調整系統時鐘。否則會導致作業系統或其他軟體元件中出現問題,進而導致諸如 HADB 節點掛機或重新啟動之類的問題。向後調整時鐘會導致某些 HADB 伺服器程序掛機 (由於時鐘已被調整)。

若要同步化時鐘,請執行以下作業︰

如果 HADB 偵測到時鐘調整大於一秒,則會將其記錄至節點歷史檔案,例如︰

NSUP INF 2003-08-26 17:46:47.975 Clock adjusted.
 Leap is +195.075046 seconds.

檔案系統支援

本小節說明 HADB 對某些檔案系統的限制。

Red Hat Enterprise Linux

HADB 支援 Red Hat Enterprise Linux 3.0 上的 ext2 和 ext3 檔案系統。對於 Red Hat Enterprise Linux 2.1,HADB 支援 ext2 檔案系統。

Veritas 檔案系統

在 Solaris 上使用 Veritas 檔案系統時,HADB 會將訊息 WRN: Direct disk I/O mapping failed 寫入至歷史檔案。此訊息表示 HADB 無法開啟資料和記錄裝置的直接輸入/輸出 (I/O)。直接 I/O 可降低寫入磁碟頁面的 CPU 消耗。它也會減少管理作業系統中「已使用過的」資料頁面的經常性耗用時間。

若要同時使用直接 I/O 與 Veritas 檔案系統,請執行以下操作之一:


備註 –

這些配置尚未在 Sun Java System Application Server 中進行測試。