有兩種原因需要延伸原始 HADB 配置:
儲存的階段作業資料容量超出資料裝置中的現有儲存空間。由於資料裝置空間已滿,作業事件可能中斷。
使用者載入增加,耗盡系統資源。需要增加更多主機。
本小節說明如何不關閉 Application Server 叢集或資料庫延伸 HADB,尤其是:
另請參閱維護 HADB 機器中的相關資訊。
增加 HADB 儲存空間:
如果使用者作業事件重複中斷,並顯示以下錯誤訊息之一:
4592: No free blocks on data devices
4593: No unreserved blocks on data devices
如果 hadbm deviceinfo 指令始終報告自由空間不足,請參閱取得裝置資訊。
如果節點上存在未使用的磁碟空間或增加磁碟容量時,還可能要增加現有節點的儲存空間。如需有關建議的資料裝置大小之資訊,請參閱指定裝置大小
若要增加節點的儲存空間,請使用 hadbm set 指令增加資料裝置大小。
hadbm set DataDeviceSize=size
其中,size 為資料裝置大小 (MB)。
請參閱一般選項,以取得指令選項說明。
變更 FaultTolerant 或更高狀態的資料庫資料裝置大小會升級系統,而沒有資料遺失或可用性損失。資料庫在重新配置期間仍在作業。變更非 FaultTolerant 或更好狀態之系統上的裝置大小導致資料遺失。如需有關資料庫狀態的更多資訊,請參閱資料庫狀態。
以下指令為設定資料裝置大小之範例:
hadbm set DataDeviceSize=1024
如果 HADB 需要更多處理或儲存容量,您可能要增加機器。若要新增執行 HADB 的機器,請與 Application Server 一同安裝 HADB 套裝軟體或僅安裝套裝軟體,如第 2 章, 安裝和設定高可用性資料庫中所述。如需節點拓樸替代的說明,請參閱「Sun Java System Application Server Enterprise Edition 8.2 Deployment Planning Guide」中的第 3 章「Selecting a Topology」。
在所有新節點上啟動管理代理程式。
延伸新主機的管理網域。
如需詳細資訊,請參閱 hadbm extenddomain 指令。
啟動這些主機上的新節點。
如需詳細資訊,請參閱增加節點
若要增加 HADB 系統的處理和儲存容量,請建立新節點並將其增加至資料庫。
增加節點後,請更新 HADB JDBC 連線池的以下特性:
serverlist 特性。
持續的池大小。通常可以為每個新節點增加 8 條連線。如需更多資訊,請參閱「Sun Java System Application Server Enterprise Edition 8.2 Deployment Planning Guide」中的「System Sizing」。
若要增加節點,請使用 hadbm addnodes 指令。指令語法為:
hadbm addnodes [--no-refragment] [--spares=sparecount] [--historypath=path] [--devicepath=path] [--set=attr-name-value-list] [--dbpassword=password | --dbpasswordfile=file ] [--adminpassword=password | --adminpasswordfile=file] --hosts=hostlist [dbname]
dbname 運算元指定資料庫名稱。預設為 hadb。資料庫必須處於 HAFaultTolerant 或 FaultTolerant 狀態。如需有關資料庫狀態的更多資訊,請參閱資料庫狀態。
如果未指定 --devicepath 和 --historypath 選項,新節點將具有與現有資料庫相同的裝置路徑,並使用相同的歷史檔案。
增加節點執行重新分段並重新分配現有資料作業,以將新節點包括在系統中。線上重新分段需要用於 HADB 節點的磁碟具有足夠空間以同時包含舊資料和新資料,直至重新分段完成,亦即使用者資料大小不得超過使用者資料可用空間的 50%。如需詳細資訊,請參閱取得裝置資訊
增加節點的最佳時間為系統負載較輕時。
例如︰
hadbm addnodes -adminpassword=password --hosts n6,n7,n8,n9
下表說明特殊的 hadbm addnodes 指令選項。請參閱一般選項,以取得其他選項說明。
表 3–13 hadbm addnodes 選項
選項 |
說明 |
預設 |
---|---|---|
-r |
建立節點期間請勿重新分段資料庫。在此情況下,可稍後使用 hadbm refragment 指令重新分段資料庫以使用新節點。如需有關重新分段的詳細資訊,請參閱重新分段資料庫 如果沒有足夠的裝置空間進行重新分段,請重新建立包含更多節點的資料庫。請參閱透過重新建立資料庫增加節點 |
不適用 |
-s |
除現有備援節點之外的新備援節點數。必須等於或小於增加的節點數。 |
0 |
-d |
裝置路徑。裝置為:
|
Solaris 和 Linux:HADB_install_dir/device Windows:C:\Sun\AppServer \SUNWhadb\vers,其中 vers 為 HADB 版本編號。 |
-H |
以逗號分隔的資料庫新節點的新主機名稱清單。為清單中每個以逗號分隔的項目建立一個節點。節點數必須相等。HADB 主機的 IP 位址必須為 IPv4 位址。 使用重複主機名稱在同一機器上建立具有不同連接埠號的多個節點。確定同一機器上的節點並非鏡像節點。 奇數編號的節點在一個 DRU 中,偶數編號的節點在其他 DRU 中。如果使用了 --spares,則新的備用節點為編號最大的節點。 如果使用雙網路介面建立資料庫,必須以相同方式配置新節點 。請參閱配置網路備援。 |
無 |
重新分段資料庫以在新建立的節點中儲存資料。重新分段可在所有使用中節點上平均分配資料。
若要重新分段資料庫,請使用 hadbm refragment 指令。指令語法為:
hadbm refragment [--dbpassword=password | --dbpasswordfile=file] [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl] [dbname]
dbname 運算元指定資料庫名稱。預設為 hadb。資料庫必須處於 HAFaultTolerant 或 FaultTolerant 狀態。如需有關資料庫狀態的更多資訊,請參閱取得 HADB 的狀態。
請參閱一般選項,以取得指令選項說明。如需更多資訊,請參閱 hadbm-refragment(1)。
線上重新分段需要用於 HADB 節點的磁碟具有足夠空間以同時包含舊資料和新資料,直至重新分段完成,亦即使用者資料大小不得超過使用者資料可用空間的 50%。如需詳細資訊,請參閱取得裝置資訊
重新分段資料庫的最佳時間為系統負載較輕時。
如果此指令在多次嘗試之後仍然失敗,請參閱透過重新建立資料庫增加節點
例如︰
hadbm refragment
如果線上重新分段在新增節點時始終失敗 (由於資料裝置空間不足或其他原因),請重新建立包含新節點資料庫。這將導致現有使用者資料和模式資料遺失。
此程序可讓您在整個過程中始終維持 HADB 可用性。
對於每個 Application Server 實例:
在負載平衡器中停用 Application Server 實例。
停用階段作業持續性。
重新啟動 Application Server 實例。
在負載平衡器中重新啟用 Application Server 實例。
如果無需維持可用性,可以在負載平衡器中立即停用並重新啟用所有伺服器實例。這會節省時間,並防止過期階段作業資料容錯移轉。
如停止資料庫中所述停止資料庫。
如移除資料庫中所述刪除資料庫。
如建立資料庫中所述重新建立包含附加節點的資料庫。
如配置 JDBC 連線池中所述重新配置 JDBC 連線池。
重新載入階段作業持續性存放區。
對於每個 Application Server 實例:
在負載平衡器中停用 Application Server 實例。
啟用階段作業持續性。
重新啟動 Application Server 實例。
在負載平衡器中重新啟用 Application Server 實例。
如果無需維持可用性,可以在負載平衡器中立即停用並重新啟用所有伺服器實例。這會節省時間,並防止過期階段作業資料容錯移轉。