在您於主機或伺服器上執行診斷測試、維護或調整之前,會先進入維護模式。維護模式可防止中斷用戶端要求,其作法是當用戶端資料流量流往處於維護模式的伺服器時,改將資料流量遞送至另一部伺服器。
關於這項作業
當伺服器是調整成員,且處於維護模式時,調整控制器無法啟動或停止該伺服器。以叢集的執行中實例數目下限或上限來說,並不會將該伺服器計算在內。
一旦主機進入維護模式,調整控制器就無法在該主機上供應新的伺服器。
您可以在加入群體的伺服器上,或是在已向群體登錄的主機上,進入維護模式。
您可以利用維護模式,來變更已啟用「智慧型管理」之 Web 伺服器的要求遞送。
使伺服器或主機進入維護模式,是一項持續存在的變更。伺服器或主機會維持維護模式(即使伺服器重新啟動),直到明確變更此模式為止。
程序
- 使用群體的 enterMaintenanceMode 指令,使伺服器或主機和其伺服器進入維護模式。
wlp/bin/collective enterMaintenanceMode
--host=controllerHostName
--port=controllerHttpsPortNumber
--user=adminUser
--password=adminPassword
--hostName=serverHostName
[--usrDir=serverUserDirectory]
[--server=serverName]
[--break]
[--force]
如果要減少所需要的選項數目,請使用 --controller 選項,而不使用 --user、--password、--host 和
--port。
wlp/bin/collective enterMaintenanceMode --controller=adminUser:adminPassword@controllerHostName:controllerHttpsPortNumber --hostName=serverHostName [--usrDir=serverUserDirectory]
[--server=serverName][--break][--force]
--host 和 --port 引數用來識別哪個群體控制器可以處理指令。--user 和 --password 引數是接受控制器鑑別的管理使用者 ID 和密碼。
--hostName、--usrDir 和 --server 引數用來識別要進入維護模式的伺服器。如果您想使主機和其伺服器進入維護模式,請只提供 --hostName 引數,並省略 --usrDir 和 --server 引數。
依預設,Web 伺服器會繼續傳送親緣性要求給處於維護模式的伺服器。如果要停止將任何資料流量(包括要傳給伺服器的親緣性要求)送往伺服器,請使用 --break。
調整控制器會啟動另一部伺服器,來取代進入維護模式的每一個調整成員。為了符合叢集的實例數目下限或符合現行工作量需求,將會啟動另一部伺服器。依預設,如果調整控制器找不到另一部伺服器來擔任取代伺服器,該伺服器就不會進入維護模式。使用 --force 引數,會使伺服器進入維護模式,即使沒有可用的取代伺服器也一樣。
- 使用群體的 exitMaintenanceMode 指令,使伺服器或主機和其伺服器離開維護模式。
wlp/bin/collective exitMaintenanceMode
--host=controllerHostName
--port=controllerHttpsPortNumber
--user=adminUser
--password=adminPassword
--hostName=serverHostName
[--usrDir=serverUserDirectory]
[--server=serverName]
如果要減少所需要的選項數目,請使用 --controller 選項,而不使用 --user、--password、--host 和
--port。
wlp/bin/collective exitMaintenanceMode --controller=adminUser:adminPassword@controllerHostName:controllerHttpsPortNumber --hostName=serverHostName
[--usrDir=serverUserDirectory][--server=serverName]
- 使用群體的 getMaintenanceMode 指令,顯示伺服器或主機和其伺服器是否處於維護模式。
wlp/bin/collective getMaintenanceMode
--host=controllerHostName
--port=controllerHttpsPortNumber
--user=adminUser
--password=adminPassword
--hostName=serverHostName
[--usrDir=serverUserDirectory]
[--server=serverName]
如果要減少所需要的選項數目,請使用 --controller 選項,而不使用 --user、--password、--host 和
--port。
wlp/bin/collective getMaintenanceMode --controller=adminUser:adminPassword@controllerHostName:controllerHttpsPortNumber --hostName=serverHostName
[--usrDir=serverUserDirectory][--server=serverName]
範例
在本例中,hostc 具有一個群體控制器。群體控制器啟用了調整控制器和動態遞送特性。在調整控制器的 server.xml 檔中,作用中的叢集成員數目下限設為 1。Host1 有兩個已啟動的叢集成員,一個是 cluster A 的 memberA1,一個是 cluster B 的 memberB1。Host2 有一個已停止的叢集成員,即 cluster A 的 memberA2。所有的叢集成員都已啟用調整成員特性。此外,還有一部已啟用「智慧型管理」的 Web 伺服器,它正在將要求遞送給叢集成員。
如果要使
host1 進入維護模式,請輸入下列指令:
wlp/bin/collective enterMaintenanceMode
--host=hostc
--port=controller1HttpsPortNumber
--user=adminUser
--password=adminPassword
--hostName=host1
如果要減少所需要的選項數目,請使用 --controller 選項,而不使用 --user、--password、--host 和
--port。
wlp/bin/collective enterMaintenanceMode --controller=adminUser:adminPassword@hostc:controller1HttpsPortNumber --hostName=host1
指令發出下列回應:
host1 已順利進入維護模式。必須啟動替代伺服器。當替代伺服器啟動時,將為 memberA1 設定維護模式。因替代伺服器無法使用,memberB1 無法進入維護模式。
調整控制器啟動
memberA2 來取代 memberA1。在 memberA2 啟動之後,memberA1 即進入維護模式。Web 伺服器不再將 HTTP 要求遞送至 memberA1。
調整控制器無法取代
memberB1,因此該成員不會進入維護模式。您可以使用
--force 引數來重新執行指令,以強制 memberB1 進入維護模式,如此可能影響正在 clusterB 中執行之要求的效能。
下一步
當違反性能原則時,性能控制器也會使用伺服器維護模式,作為要採取的動作。例如,如果您使用「回應時間過久」條件,當回應時間超出指定給伺服器的平均回應時間臨界值時,該伺服器可能移至維護模式。