Partager via


建議執行 Windows Server 2008 R2 之資料庫可用性群組安裝 Windows Hotfix

英文原文已於 2011 年 11 月 20 日星期日發佈

今年八月初,Windows SE 小組發佈了下列這篇知識庫文章及軟體 Hotfix,以解決 Windows Server 2008 R2 容錯移轉叢集的一個問題:

KB2550886 - 暫時性通訊失敗導致 Windows Server 2008 R2 容錯移轉叢集停止運作 (可能為英文網頁)

我們極力建議所有跨多個資料中心的資料庫可用性群組都安裝此 Hotfix。對於沒有跨多資料中心的 DAG,安裝此 Hotfix 也是有益無害。這篇文章說明當 Windows 容錯移轉叢集發生暫時性通訊失敗時,可能會發生的競爭情況及叢集資料庫失效的問題。叢集節點之重新連線邏輯中的競爭情況,會在叢集發生通訊失敗時出現。當發生此情況時,會造成叢集資料庫無回應,進而導致容錯移轉叢集遺失叢集仲裁。

一如 TechNet 上所述,資料庫可用性群組 (DAG) 必須仰賴包括叢集資料在內的特定叢集功能。 為使 DAG 能夠運作,並提供高可用性,叢集和叢集資料庫必須要正常地執行。

Microsoft 曾經在發生網路暫時性失敗時 (為時約 60 秒的網路通訊失敗),整個叢集失效且所有位於 DAG 中的資料庫皆被卸載的情況。由於要明確判斷出失效的叢集節點並非易事,因此,如果容錯移轉叢集是重新連線邏輯競爭所致,則唯一能夠修復此失效狀態的方法,就是重新啟動叢集中所有的成員。

這個問題通常會在發生非對稱式通訊失敗時 (兩節點無法相互通訊,但卻可以和其他節點繼續通訊),以遺失叢集仲裁的形態表現。如果其他節點在接收來自叢集的「全域更新管理員」(GUM) 的重組訊息時出現延遲的狀況,則所收下的重組訊息的順序可能並非預期。如此一來就會造成叢集仲裁遺失,而不會叫用應有的行為,將最初發生通訊失敗的節點之一從叢集中移除。

一般而言,當兩節點偵測到配對之間因為連線中斷而出現雙方的延遲時間不對稱 (例如,當半數 DAG 成員的延遲為 1 毫秒,而另外半數之 DAG 成員的延遲為 30 毫秒時) 時,就會發生此錯誤。假使一號節點先於二號節點之前偵測到連線中斷,就會發生競爭情況:

  • 一號節點會開始重新連接兩個節點間的資料流,致使二號節點在其資料中加入一個新的資料流。
  • 新增資料流會撤除舊的資料流,並設定忽略其失敗處理常式。因此,當發生失敗時,將不會偵測到成為失敗資料流的舊資料流。
  • 當二號節點偵測到連線中斷時,會開始自己的重新連線程序。若連線中斷是在正確的競爭程序中偵測到,會將失敗資料流的失敗處理程序設為忽略,而不會開始重新連線。其會對傳送佇列發出暫停訊號,藉此停止兩個節點間的訊息傳送。當訊息傳送停止時,GUM 便無法正確運作,進而強制叢集重新啟動。

發生這種狀況對於 DAG 會造成十分不好的後果。因此,我們極力建議您將此 Hotfix 部署到您所有隸屬於 DAG 的成員信箱伺服器,其中又以 DAG 跨多個資料中心的情況最為需要。此 Hotfix 對於執行 Exchange 2007 單一複本叢集和叢集連續複寫的環境也有所助益。

除了修正上述問題之外,KB2550886 也包含了其他重要的 Windows Server 2008 R2 Hotfix,建議 DAG 一併安裝:

這是翻譯後的部落格文章。英文原文請參閱 Recommended Windows Hotfix for Database Availability Groups running Windows Server 2008 R2