共用方式為


容錯移轉叢集和 Always On 可用性群組 (SQL Server)

只適用於SQL Server - 僅限 Windows。

Always On 可用性群組是 SQL Server 2012 (11.x) 導入的高可用性和災害復原解決方案,需要 Windows Server 容錯移轉叢集 (WSFC)。 此外,雖然 Always On 可用性群組不相依於 SQL Server 容錯移轉叢集,但您可以使用容錯移轉叢集執行個體 (FCI) 來裝載可用性群組的可用性複本。 請務必瞭解每個叢集技術的角色,並瞭解在設計 Always On 可用性群組環境時需要哪些考慮。

注意

如需 Always On 可用性群組概念的相關資訊,請參閱 什麼是 Always On 可用性群組?

Windows Server 容錯移轉叢集和可用性群組

部署 Always On 可用性群組需要 Windows Server 容錯移轉叢集 (WSFC)。 若要為 Always On 可用性群組啟用,SQL Server 執行個體必須位於 WSFC 節點上,且 WSFC 和節點必須在線上。 此外,所指定可用性群組之每個可用性複本都必須位在相同 WSFC 的不同節點上。 唯一的例外狀況是在移轉至另一個 WSFC 期間,可用性群組可以暫時跨兩個叢集。

Always On 可用性群組依賴 Windows Server 容錯移轉叢集 (WSFC) 來監視及管理屬於所指定可用性群組的可用性複本目前角色,並判斷容錯移轉事件對於可用性複本的影響程度。 對於您建立的每個可用性群組,系統會建立一個 WSFC 資源群組。 WSFC 會監視此資源群組,以評估主要複本的健康狀態。

Always On 可用性群組的仲裁會以 WSFC 中的所有節點為基礎,而不論給定叢集節點是否裝載任何可用性複本。 與資料庫鏡像相反,Always On 可用性群組中沒有見證角色。

WSFC 的整體健康狀態是由叢集節點的仲裁投票所決定。 如果 WSFC 因為未規劃的災害或由於持續硬體或通訊失敗而離線,則需要手動管理介入。 Windows Server 或 WSFC 管理員需要強制仲裁,然後使非容錯設定中的存活叢集節點恢復上線。

重要

Always On 可用性群組登錄機碼是 WSFC 的子機碼。 如果您在刪除 WSFC 後重新加以建立,則必須在原始 WSFC 上裝載可用性複本的每個 SQL Server 執行個體,停用然後重新啟用 Always On 可用性群組功能。

如需在 WSFC 節點上執行 SQL Server 和 WSFC 仲裁的相關資訊,請參閱 使用 SQL Server 的 Windows Server 容錯移轉叢集

SQL Server 容錯移轉叢集執行個體 (FCI) 和可用性群組

您可以藉由將 SQL Server 和 FCI 連同 WSFC 一起實作,在伺服器執行個體層級設定容錯移轉的第二層。 SQL Server 的獨立執行個體或 FCI 執行個體都可以裝載可用性複本。 只有一個 FCI 夥伴可以裝載給定可用性群組的複本。 在 FCI 上執行可用性複本時,可用性群組的可能擁有者清單只包含使用中 FCI 節點。

Always On 可用性群組不相依於任何形式的共用儲存體。 不過,如果您使用 SQL Server 容錯移轉叢集執行個體 (FCI) 來裝載一或多個可用性複本,依照標準 SQL Server 容錯移轉叢集執行個體安裝,這些 FCI 都需要共用儲存體。

如需其他必要條件的詳細資訊,請參閱 Always On 可用性群組 (SQL Server) 的必要條件、限制和建議

容錯移轉叢集執行個體和可用性群組的比較

無論 FCI 中節點的數目有多少,整個 FCI 只能裝載可用性群組的單一複本。 下表描述 FCI 節點和可用性群組複本之間的概念差異。

FCI 內的節點 可用性群組內的複本
使用 WSFC Yes Yes
保護等級 執行個體 資料庫
儲存體類型 共用 非共用

雖然可用性群組中的複本不會共用儲存體,但由 FCI 裝載的複本會根據該 FCI 的需求使用共用儲存體解決方案。 只有 FCI 內的節點共用儲存方案,可用性群組的複本之間不共用儲存方案。
儲存方案 直接附加、SAN、掛接點、SMB 取決於節點類型
可讀取次要 否* Yes
適用的容錯移轉原則設定 WSFC 仲裁

FCI 特定

可用性群組設定**
WSFC 仲裁

可用性群組設定
容錯移轉資源 伺服器、執行個體和資料庫 僅限資料庫

*雖然可用性群組中的同步次要複本一律在其各自的 SQL Server 執行個體上執行,但 FCI 中的次要節點實際上尚未啟動其各自的 SQL Server 執行個體,因此無法讀取。 在 FCI 中,次要節點只有在 FCI 容錯移轉期間資源群組擁有權轉移到它自己時,才會啟動其 SQL Server 執行個體。 不過,在作用中 FCI 節點上,當 FCI 裝載的資料庫屬於可用性群組時,如果本機可用性複本以可讀取的次要複本身分執行,則資料庫是可讀取的。

**可用性群組的容錯移轉原則設定會套用至所有複本,無論它是裝載在獨立執行個體還是 FCI 執行個體中。

在 FCI 上裝載可用性複本的考量

重要

如果您打算在 SQL Server 容錯移轉叢集執行個體 (FCI) 上裝載可用性複本,請確定 Windows Server 2008 主機節點符合容錯移轉叢集執行個體 (FCI) 的 Always On 必要條件和限制。 如需詳細資訊,請參閱 Always On 可用性群組的必要條件、限制和建議 (SQL Server)

SQL Server 容錯移轉叢集執行個體 (FCI) 不支援依可用性群組自動容錯移轉,因此 FCI 裝載的任何可用性複本只能設定為手動容錯移轉。

您可能需要設定 WSFC,以包含並非所有節點上都可用的共用磁碟。 例如,假設有一個 WSFC 跨兩個資料中心,其共有三個節點。 其中兩個節點在主要資料中心裝載 SQL Server FCI,並可存取相同的共用磁碟。 第三個節點在不同的資料中心裝載 SQL Server 的獨立執行個體,而且無法從主要資料中心存取共用磁碟。 如果 FCI 裝載主要複本,而獨立執行個體裝載次要複本,則此 WSFC 設定支援部署可用性群組。

選擇 FCI 來裝載指定可用性群組的可用性複本時,請確定 FCI 容錯移轉不會造成單一 WSFC 節點嘗試裝載相同可用性群組的兩個可用性複本。

下列範例案例說明這個組態可能會如何導致問題的發生:

  • 您可以使用兩個節點來設定 WSFC,NODE01NODE02
  • 您可以在 fciInstance1NODE01 上安裝 SQL Server 故障轉移叢集實例 NODE02,其中 NODE01fciInstance1的目前擁有者。
  • 在 上 NODE02,您可以安裝另一個 SQL Server Instance3執行個體,這是獨立執行個體。
  • NODE01上,您可以在 Always On 可用性群組中啟用 fciInstance1。 在 NODE02上,您可以在 Always On 可用性群組中啟用 Instance3。 然後,您會設定 fciInstance1 承載主要複本的可用性群組,Instance3 承載次要複本。
  • 在某個時間點,fciInstance1在 上NODE01變成無法使用,而 WSFC 會導致容NODE02錯移轉 fciInstance1 。 在容錯移轉之後,fciInstance1 成為具有 Always On 可用性群組功能的執行個體,在 NODE02 上以主要角色執行。 但是, Instance3 現在位於與 fciInstance1相同的 WSFC 節點上。 這違反了 Always On 可用性群組條件約束。

若要更正此案例所呈現的問題,獨立執行個體 Instance3、 必須位於與 和 NODE02相同的 NODE01 WSFC 中的另一個節點上。

如需 SQL Server FCI 的詳細資訊,請參閱 Always On 容錯移轉叢集執行個體 (SQL Server)。

搭配可用性群組使用 WSFC 管理員的限制

請勿使用容錯移轉叢集管理員來操作可用性群組。 例如:

  • 請勿在可用性群組的叢集服務 (資源群組) 中新增或移除資源。

  • 請勿變更任何可用性群組屬性,例如可能的擁有者和慣用的擁有者。 可用性群組會自動設定這些屬性。

  • 請勿使用容錯移轉叢集管理員將可用性群組移至不同的節點,或容錯移轉可用性群組。 容錯移轉叢集管理員不知道可用性複本的同步處理狀態,這樣做可能會導致停機時間延長。 您必須使用 Transact-SQL 或 SQL Server Management Studio。

警告

使用容錯移轉叢集管理員將裝載可用性群組的 容錯移轉叢集執行個體 移至 裝載相同可用性群組複本的節點,可能會導致遺失可用性群組複本,防止它在目標節點上上線。 容錯移轉叢集的單一節點無法裝載相同可用性群組的多個複本。 如需如何發生以及如何復原的詳細資訊,請參閱部落格複 本意外卸除在可用性群組中