僅在本機磁碟上儲存裝置、記錄和歷史檔案,請勿使用遠端掛載的檔案系統。
如果一個主機上具有多個節點,則建議您保持裝置屬於不同磁碟上的每個節點。否則,磁碟競爭狀態會降低效能。此問題可從歷史檔案中顯示的訊息 (如 BEWARE - last flush/fputs took too long) 得知。當單一節點具有多個資料裝置檔案時,建議您對這些裝置檔案使用獨立的磁碟。
使用本機磁碟 (最好對資料檔案使用獨立的磁碟,而非一個磁碟) 以在 HADB 主機上安裝 HADB 二進位檔。NFS 延遲或磁碟競爭狀態可能導致節點重新啟動,並在歷史檔案中顯示警告「Process blocked for nnn, max block time is nnn」。
請勿將 HADB 裝置、歷史檔案、管理代理程式目錄和代理程式配置檔案置於 HADB 套裝軟體路徑。這會導致在升級至更新版本並刪除舊套裝軟體路徑時出現問題。
此 HADB 版本正式支援最多 28 個節點;24 個使用中資料節點,4 個備用節點。
建議您使用相同版本的 JDBC 驅動程式和 HADB 伺服器。
不支援 IPv6,僅支援 IPv4。
在 Windows 上的指令行長度限制在 2048 位元組之內。
必須為 UDP 多重播送配置網路。
由於在 RedHat Enterprise Linux 3.0 update 1 至 3 中曾出現過度交換,因此不建議將其作為部署平台。此問題已在 RedHat Enterprise Linux 3.0 update 4 中修正。
執行具有即時優先權之 NSUP 的可能性。
節點監督員 (NSUP) 程序 (clu_nsup_srv ) 在及時交換「活動訊號」訊息的協助下,可確保 HADB 的高可用性。當 NSUP 與其他導致資源匱乏的程序佈建在相同位置時,計時會受到影響。結果是虛假的網路分割和節點重新啟動 (會先在歷史檔案中顯示警告「Process blocked for n seconds」) 造成作業事件中斷和其他異常。
若要解決此問題,clu_nsup_srv (位於 installpath/lib/server) 必須包含 suid 位元集,且檔案必須由 root 所有。這可透過以下指令手動歸檔︰
# chown root clu_nsup_srv # chmod u+s clu_nsup_srv |
如此會導致在啟動時將 clu_nsup_srv 程序作為使用者 root 執行,並且依次允許程序在啟動後自動授予自己即時優先權。為了避免因使用 setuid 而造成任何安全性影響,會在每次開始時設定即時優先權,而且優先權一旦變更,程序即恢復有效的 uid。其他 HADB 程序會將其優先權降低為分時共用優先權。
若 NSUP 無法設定即時優先權,則會發出警告「Could not set realtime priority」(unix: errno will be set to EPERM),其會寫入 ma.log 檔案,並在沒有即時優先權的情況下繼續。
在某些情況下不可能設定即時優先權,例如︰
安裝在 Solaris 10 非全域區域中時
在 Solaris 10 中呼叫 PRIV_PROC_LOCK_MEMORY (允許程序在實體記憶體中鎖定頁面) 和/或 PRIV_PROC_PRIOCNTL 優先權時
使用者關閉 setuid 權限
使用者將軟體安裝為 tar 檔案 (App.server 的非根安裝選項)
clu_nsup_srv 程序不會大量消耗 CPU,其佔用空間很小且使用即時優先權來執行它不會影響效能。
對於 Solaris,為 HADB 配置 IP 網路多重路徑 (僅在 Solaris 9 經過測試)。
Sun 建議將執行 HADB 的 Solaris 主機進行網路多重路徑設定,以確保最高的可能網路可用性。在「IP Network Multipathing Administration Guide」中,詳細介紹了網路多重路徑設定。如果您決定配合使用多重路徑和 HADB,請參閱「IP Network Multipathing Administration Guide」中的「Administering Network Multipathing」小節 ,以便在您根據以下說明調整多重路徑設定以配合使用 HADB 之前,設定多重路徑。「IP Network Multipathing Administration Guide」是「Solaris 9 System Administrator Collection」中的一部份,並可以從 http://docs.sun.com 下載。
設定網路介面故障偵測時間
為了讓 HADB 能夠正確支援多重路徑容錯移轉,網路介面故障偵測時間不得超過 1000 毫秒,如 /etc/default/mpathd 中之 FAILURE_DETECTION_TIME 參數所指定。若原始值高於此值,請編輯檔案並將此參數的值變更為 1000︰
FAILURE_DETECTION_TIME=1000 |
為了使變更生效,發出以下指令︰
pkill -HUP in.mpathd |
與 HADB 配合使用的 IP 位址
如在「Solaris IP Network Multipathing Administration Guide」中所說明的,多重路徑涉及將實體網路介面分組為多重路徑介面群組。在此群組中的每個實體介面均具有兩個相關的 IP 位址︰實體介面位址和測試位址。只有實體介面位址可以用於傳輸資料,而測試位址僅供 Solaris 內部使用。如果執行 hadbm create --hosts,每個主機均應該僅使用多重路徑群組中的一個實體介面位址來指定。
範例
假設主機 1 和主機 2 分別具有兩個實體網路介面。在每個主機上,這兩個介面均設定為多重路徑群組,且執行 ifconfig -a 會產生以下結果︰
主機 1
bge0: flags=1000843<mtu 1500 index 5 inet 129.159.115.10 netmask ffffff00 broadcast 129.159.115.255 groupname mp0 bge0:1: flags=9040843<mtu 1500 index 5 inet 129.159.115.11 netmask ffffff00 broadcast 129.159.115.255 bge1: flags=1000843<mtu 1500 index 6 inet 129.159.115.12 netmask ffffff00 broadcast 129.159.115.255 groupname mp0 bge1:1: flags=9040843<mtu 1500 index 6 inet 129.159.115.13 netmask ff000000 broadcast 129.159.115.255 |
主機 2
bge0: flags=1000843<mtu 1500 index 3 inet 129.159.115.20 netmask ffffff00 broadcast 129.159.115.255 groupname mp0 bge0:1: flags=9040843<mtu 1500 index 3 inet 129.159.115.21 netmask ff000000 broadcast 129.159.115.255 bge1: flags=1000843<mtu 1500 index 4 inet 129.159.115.22 netmask ffffff00 broadcast 129.159.115.255 groupname mp0 bge1:1: flags=9040843<mtu 1500 index 4 inet 129.159.115.23 netmask ff000000 broadcast 129.159.115.255 |
其中,這兩個主機上的實體網路介面即會列為 bge0 和 bge1 介面。如「IP Network Multipathing Administration Guide」中所述,列為 bge0:1 與 bge1:1 的介面是多重路徑測試介面 (因而在 ifconfig 輸出中標為 DEPRECATED)。
若要在此環境中設定 HADB,請從每個主機中選取一個實體介面。在此範例中,從主機 1 中選擇 129.159.115.10,從主機 2 中選擇 129.159.115.20。每個主機若要使用一個資料庫節點建立資料庫,請將以下引數用於 hadbm create︰
--host 129.159.115.10,129.159.115.20 |
每個主機若要使用兩個資料庫節點建立資料庫,請使用以下引數︰
--host 129.159.115.10,129.159.115.20,129.159.115.10,129.159.115.20 |
在這兩種情況下,在每個主機上均應將 ma.server.mainternal.interfaces 變數設定為 129.159.115.0/24。