關於管理失敗
Oracle Fusion Middleware (FMW) 延伸叢集拓樸可復原任何個別元件中的失敗。
每個網站都會遵循 Oracle FMW Enterprise Deployment 拓樸中概述的高可用性最佳做法,確保本機備援能夠防止元件層次 (例如負載平衡器、Oracle HTTP Server 執行處理、Oracle WebLogic Server 或資料庫執行處理) 發生中斷。
以下章節將探討解決案例的考量,例如網站內的完整層故障或網站故障總計。
管理單一網站上所有 Web 伺服器的失敗
所有從屬端要求 (不論其網站偏好設定為何) 都將遞送至其他網站。
因此,含有失敗 Web 伺服器的網站 Oracle WebLogic 伺服器將不會收到新的要求。他們可以繼續執行一些處理 (例如,處理 Oracle SOA 複合項目和 java 訊息服務 (JMS) 訊息)。不過,從這些伺服器內部產生的任何 HTTP 回呼都會失敗,因為它們指向自己的網站,而其 Web 伺服器已失敗。
下圖顯示某個網站之所有 Web 伺服器的失敗
從失敗復原
系統會根據 Oracle Cloud Infrastructure (OCI) 流量管理操控原則或全域負載平衡器 (GLBR),將用戶端自動重新導向至其他網站。
如果短期內無法回復遺失的 Web 伺服器執行處理,您可以執行下列動作,以使用失敗的 Web 層來使用網站的 WebLogic 伺服器:
- 設定其他站台的 Oracle HTTP Server (OHS) 執行處理,以將要求遞送至失敗站台上的 Oracle WebLogic Server 執行處理。
- 更新 OHS 組態並將
DynamicServerList參數設為ON。 - 以輪流方式重新啟動 OHS 以套用此變更,以避免發生停止工作的情形。
- 此外,請確定允許從 Web 伺服器到其他網站的 WebLogic 伺服器進行跨區域通訊。
- 更新 OHS 組態並將
- 為避免超文字傳輸協定 (HTTP) 回呼因無法使用 OHS 伺服器的網站而失敗,請更新 WebLogic 伺服器主機之
/etc/hosts檔案或專用網域名稱系統 (DNS) 中的前端名稱項目,以指向另一個網站的負載平衡器。
- 啟動失敗網站中的 OHS 處理作業。
當 Oracle Cloud Infrastructure Health Checks 再次確認後,流量管理操控原則將會根據定義的規則,在兩個網站之間負載平衡從屬端要求。
- 在另一個網站中再次將
DynamicServerList設為OFF。 - 回復 WebLogic 伺服器的
/etc/hosts檔案 (或專用 DNS) 中的任何變更,以便再次指向自己的網站負載平衡器。
下列影像顯示 Java Message Service (JMS) 佇列訊息,以及一個站台上所有 Web 伺服器失敗時的從屬端失敗要求:
預期復原時間目標
DNS 更新會影響其操控原則偏好設定設為失敗區域的從屬端。TTL 值會決定這些從屬端在更新舊項目以指向狀況良好的網站之前,將繼續使用舊項目的時間長度。額外時間 (約 1 分鐘) 取決於 OCI 操控原則中設定的狀況檢查頻率和逾時 (上述測試使用 30 秒執行狀況檢查間隔,逾時 10 秒)。
使用全域負載平衡器 (GLBR) 時,停機時間取決於 GLBR 中設定的狀況檢查頻率。當 GLBR 將集區標記為狀況不良時,內送要求就會重新導向至其他網站。使用 GLBR 時,沒有 DNS 更新,因此前端項目的 TTL 值不相關。
管理單一網站上所有 Oracle WebLogic 伺服器的失敗
失敗網站的負載平衡器會傳回失敗的回應,因此以 Oracle Cloud Infrastructure (OCI) 流量操控原則和狀況檢查為基礎的前端全域平衡功能,應該將網站標示為狀況不良。所有用戶端要求 (不論其偏好設定為何) 都將遞送至其他網站。
使用「自動服務移轉」以及「Java 資料庫連線 (JDBC)」永久存放區時,WebLogic Java Message Service (JMS) 和 Java Transaction API (JTA) 服務將會自動移轉至其他網站的伺服器。
在 Oracle Fusion Middleware (FMW) SOA 案例中,如果自動復原叢集主要資料庫是由失敗的伺服器代管,就會在可用位置中產生新的叢集主要資料庫。此伺服器會執行在其他網站上起始之 SOA 執行處理的自動復原。
下圖顯示某個網站上所有 WebLogic 伺服器的失敗:
fail-all-weblogic-servers-one-site-oracle.zip
下列影像顯示當網站上的所有 WebLogic 伺服器都失敗時,每個伺服器的從屬端失敗要求和 JMS 訊息。
在 JMS 訊息圖表中,有四行,每個行代表伺服器的 JMS 佇列。綠色與藍色線條 (幾乎重疊) 對應至已終止的伺服器。這些佇列的 JMS 訊息數目在中斷開始後不會增加。
紅線與黃線代表區域 2 中仍然停留的伺服器。將所有要求重新導向至此區域時,每個剩餘的伺服器都會收到總負載的 50%。不過,訊息在其佇列中累積的速率不同。這是因為失敗伺服器的 JMS 伺服器已移轉至其餘的伺服器之一,所以該伺服器中的訊息現在由三個佇列處理。因此,斜度會以黃色顯示較低值 (請注意,監督工具不會顯示已移轉佇列的訊息計數)。
從失敗復原
失敗的伺服器再次可用之後:
- 在失敗的網站中啟動受管理伺服器。
- 一旦 Oracle Cloud Infrastructure Health Checks 再度正常執行,流量管理操控原則就會根據定義的規則,在兩個網站之間負載平衡用戶端要求。
預期復原時間目標
這類似於某個站台上所有 Web 伺服器發生故障的情況,
DNS 更新會影響其操控原則偏好設定設為失敗區域的從屬端。TTL 值會決定這些從屬端在更新舊項目以指向狀況良好的網站之前,將繼續使用舊項目的時間長度。額外時間 (約 1 分鐘) 取決於 OCI 流量管理操控原則中設定之狀況檢查的頻率和逾時 (測試中已使用 30 秒進行狀況檢查間隔,逾時 10 秒)。
使用全域負載平衡器 (GLBR) 時,停機時間取決於 GLBR 中設定的狀況檢查頻率。當 GLBR 將集區標記為狀況不良時,內送要求就會重新導向至其他網站。使用 GLBR 時,沒有 DNS 更新,因此前端項目的 TTL 值不相關。
管理資料庫中的失敗:資料保全切換和容錯移轉
先前在「設定 WebLogic 資料來源」中提供的 Java 資料庫連線 (JDBC) URL 字串和 Oracle Notification Service (ONS) 組態,可確保將重新連線自動重新連線至新的主要資料庫。針對這些精確的測試 (使用 Oracle Fusion Middleware (FMW) SOA FOD,甚至具有 160 個並行呼叫的高工作負載),資料庫切換或容錯移轉需要不到幾分鐘的時間。這個時間可能會因系統配置和環境而有所不同。在妥善調整的系統中,通常會有 1 到 5 分鐘的切換時間,但系統大小、資源、工作負載、重做日誌同步化以及網路效能等因素可能會影響總持續時間。如需 Oracle Data Guard 文件和其他資源的連結,請參閱「探索更多」一節。
在資料庫切換或容錯移轉期間,將會發生應用程式錯誤。此外,如果使用服務移轉的 WebLogic 伺服器無法更新其租賃表格,則節點管理程式可以關閉並自動重新啟動。預設租賃參數的預期行為為:
- 如果資料庫中斷非常短 (<1-2 分鐘),則不應自動重新啟動 WebLogic 伺服器。
- 如果資料庫停止運作時間較長 (2-10 分鐘),則 WebLogic 伺服器可能會因資料庫再次啟動時「失去租用」而自動重新啟動。
如「設定調整 WebLogic 資料庫租賃」中所述,透過調整 WebLogic 的資料庫租賃重試來提高下限。
- 如果資料庫停機時間超過 10 分鐘,則 WebLogic 伺服器可能會因其他失敗而自動重新啟動,例如遺失對重要 JDBC 儲存的存取 (「無法使用 JTA 的 JDBC 儲存」)。
下圖顯示 FMW 延伸叢集拓樸中的資料庫切換
下列影像顯示 FMW 延伸叢集中資料庫切換期間,每一伺服器佇列的從屬端要求效能和 Java Message Service (JMS) 訊息。
預期復原時間目標
針對執行的測試,切換作業時間不到 2 分鐘。
針對非計畫性切換移轉或容錯移轉,總停機時間取決於資料庫停止運作的時間:
- 如果您幾乎立即執行資料庫容錯移轉或切換,則復原的總時間很短。這取決於資料庫進行切換或容錯移轉所需的時間。針對執行的測試,切換作業需要不到 2 分鐘的時間,因此預期的復原時間目標 (RTO) 為:
RTO = DB DOWNTIME + SHORT TIME (1-2 min) - 如果資料庫停止工作時間較長,可能會有額外的錯誤 (例如 Oracle WebLogic Server 自動重新啟動) 增加 RTO。在此情況下,預期的 RTO 為:
RTO = DB DOWNTIME + WEBLOGIC START TIME
管理 WebLogic 管理伺服器中的失敗
「節點管理程式」將會就地自動重新啟動失敗的伺服器。
不過,如果停機完全影響「管理伺服器」執行的主機,就必須將「管理伺服器」容錯移轉至不同的節點。
基本上,這包括在不同的節點中重新啟動「管理伺服器」,確保它指向包含「管理伺服器」網域目錄的位置,並使用對應至適當虛擬 IP (VIP) 的監聽位址。
此「管理伺服器」網域目錄可能是相同區域中不同節點可用的共用儲存體位置,或是從其他區域中節點可用的備份或檔案系統複製進行回復。
附註:
無論延伸叢集組態為何,都應該為您的 Oracle WebLogic 網域設定適當的備份程序。因此,在 Oracle Fusion Middleware (FMW) 延伸的叢集拓樸中,將「管理伺服器」移轉至不同區域中的節點,以及將它移轉至相同區域中的節點時,會有不同的考量。
下圖顯示管理伺服器容錯移轉至 FMW 延伸叢集中的其他網站
容錯移轉至其他區域
存取 WebLogic Remote Console 和 Oracle Enterprise Manager Fusion Middleware Control ,以驗證管理伺服器是否正常運作。
容錯移轉至相同區域
因此,容錯移轉程序與驗證管理伺服器的手動容錯移轉中的 Enterprise Deployment Guide (僅英文版) 所述的程序相同。
若要管理 Oracle Cloud Infrastructure (OCI) 系統中的管理伺服器虛擬 IP (VIP),您可以使用 Using a Virtual IP (VIP) in Oracle Cloud Infrastructure 部落格中所述的步驟
管理代管主要資料庫的整個區域失敗
剩餘網站中的 Oracle WebLogic Server 執行處理若使用上一節所述的建議組態,將會自動重新連線至新的主要資料庫。
失敗網站的負載平衡器將會傳回失敗的回應,因此前端全域平衡功能應將網站標示為狀況不良。所有用戶端要求 (不論其偏好設定為何) 都將遞送至其他網站。
使用「自動服務移轉」以及 JDBC 永久存放區時,WebLogic JMS 和 JTA 服務將會自動移轉至其他網站中的伺服器。在 Oracle Fusion Middleware (FMW) Oracle SOA Suite 的案例中,如果自動復原叢集主要資料庫是由失敗的伺服器代管,就會在可用位置中產生新的叢集主要資料庫。新的叢集管理程式將會執行在其他網站上起始之 SOA 執行處理的自動復原。
下圖顯示 FMW 延伸叢集拓樸中整個區域 1 的失敗:
從失敗復原
復原失敗的網站後,可以再次使用:
- 重新啟動失敗主機中的處理作業:Oracle HTTP 伺服器、WebLogic 管理伺服器和受管理伺服器。
請確定已設定「管理伺服器」虛擬 IP (VIP),而且沒有無法啟動的獨立檔案。
- 如果執行資料庫容錯移轉,請恢復失敗的資料庫。
如果您執行切換,則不需要此動作。
- 執行資料庫切換至原始網站。
預期復原時間目標
剩餘站台中的伺服器可以在剩餘站台中再次執行資料庫時繼續處理要求,因此停機時間取決於切換資料庫前所使用的時間。
- 如果您幾乎立即執行資料庫容錯移轉或切換,則復原的總時間很短。這取決於資料庫進行切換或容錯移轉所需的時間。針對執行的測試,切換作業需要不到 2 分鐘的時間,因此預期的 RTO 為:
RTO = DB DOWNTIME + SHORT TIME (1-2 min). - 如果資料庫停止工作時間較長,可能會有額外的錯誤 (例如 Oracle WebLogic Server 自動重新啟動) 增加 RTO。預期的 RTO 為:
RTO = DB DOWNTIME + WEBLOGIC START TIME
管理代管待命資料庫的整個區域失敗
所有用戶端要求 (不論其位置偏好設定為何) 都將遞送至區域 1,以繼續處理要求。使用「自動服務移轉」以及 JDBC 永久存放區時,WebLogic JMS 和 JTA 服務將會自動移轉至網站 1 中的伺服器。
在含有 Oracle SOA Suite 的 Oracle Fusion Middleware (FMW) 案例中,如果自動復原叢集主要資料庫是由失敗的伺服器代管,就會在可用位置中產生新的叢集主要資料庫。此伺服器會執行在其他網站上起始之 SOA 執行處理的自動復原。
由於停機不會影響主要資料庫,因此不需要執行資料庫切換。
下圖顯示 FMW 延伸叢集拓樸中整個區域 2 的失敗。
從失敗復原
再次提供失敗的網站之後,請重新啟動 Oracle HTTP 伺服器和 WebLogic 受管理伺服器之失敗主機中的處理作業。
請確定沒有無法啟動 WebLogic 的獨立檔案。
由於全球負載平衡器功能 (Oracle Cloud Infrastructure 流量管理操控原則或全域負載平衡器) 的緣故,客戶端的要求將再次重新平衡 2 個網站。
預期復原時間目標
網域名稱系統 (DNS) 更新會影響已將區域 2 設為其在地理位置操控原則中偏好的從屬端。DNS 更新會影響其操控原則偏好設定設為失敗區域的從屬端。TTL 值會決定這些從屬端在更新舊項目以指向狀況良好的網站之前,將繼續使用舊項目的時間長度。額外時間 (約 1 分鐘) 取決於 OCI 流量管理操控原則中設定之狀況檢查的頻率和逾時 (上述測試使用 30 秒執行狀況檢查間隔,逾時 10 秒)。
使用全域負載平衡器 (GLBR) 時,停機時間取決於 GLBR 中設定的狀況檢查頻率。當 GLBR 將集區標記為狀況不良時,內送要求就會重新導向至其他網站。使用 GLBR 時,沒有 DNS 更新,因此前端項目的 TTL 值不相關。








