共用方式為


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

SQL Server 2014 中引進的高可用性和災害復原解決方案 AlwaysOn 可用性群組需要 Windows Server 故障轉移叢集 (WSFC)。 此外,雖然 AlwaysOn 可用性群組並不相依於 SQL Server 故障轉移叢集,但您可以使用故障轉移叢集實例 (FCI) 來裝載可用性群組的可用性複本。 請務必瞭解每個叢集技術的角色,並了解設計 AlwaysOn 可用性群組環境時所需的考慮。

備註

如需 AlwaysOn 可用性群組概念的詳細資訊,請參閱 AlwaysOn 可用性群組概觀(SQL Server)。

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

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

AlwaysOn 可用性群組依賴 Windows 故障轉移叢集 (WSFC) 叢集來監視和管理屬於指定可用性群組之可用性複本的目前角色,以及判斷故障轉移事件如何影響可用性複本。 對於您建立的每個可用性群組,系統會建立一個 WSFC 資源群組。 WSFC 叢集會監視此資源群組,以評估主要復本的健康情況。

不論指定的叢集節點是否裝載任何可用性複本,Always On 可用性群組的法定人數都是以 WSFC 叢集的所有節點為基礎。 相較於資料庫鏡像,AlwaysOn 可用性群組中沒有見證角色。

WSFC 叢集的整體健康情況取決於叢集中節點是否達到仲裁票數。 如果 WSFC 叢集因為非計劃性災害或持續硬體或通訊失敗而離線,則需要手動系統管理介入。 Windows Server 或 WSFC 叢集管理員必須強制仲裁,然後在非容錯設定中讓倖存的叢集節點重新上線。

這很重要

AlwaysOn 可用性群組登錄機碼是 WSFC 叢集的子機碼。 如果您刪除並重新建立 WSFC 叢集,您必須在裝載原始 WSFC 叢集之可用性複本的每個 SQL Server 實例上停用並重新啟用 AlwaysOn 可用性群組功能。

如需有關在 Windows Server 故障轉移叢集(WSFC)節點上執行 SQL Server 以及 WSFC 仲裁的資訊,請參閱 Windows Server 故障轉移叢集(WSFC)與 SQL Server

進行作業系統升級的 AlwaysOn 可用性群組跨叢集遷移

從 SQL Server 2012 SP1 開始,Always On 可用性群組支援跨叢集移轉可用性群組,以部署至新的 Windows Server 故障轉移叢集 (WSFC) 叢集。 跨叢集移轉會將一個可用性群組或一批可用性群組移至新的目的地 WSFC 叢集,停機時間最少。 跨叢集移轉程式可讓您在升級至 Windows Server 2012 叢集時維護您的服務等級協定(SLA)。 目的地 WSFC 叢集上必須安裝並啟用 AlwaysOn 的 SQL Server 2012 SP1(或更新版本)。 跨叢集移轉的成功取決於目的地 WSFC 叢集的徹底規劃和準備。

如需詳細資訊,請參閱 Os 升級的 AlwaysOn 可用性群組跨叢集移轉

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

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

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

如需其他必要條件的詳細資訊,請參閱 AlwaysOn 可用性群組必要條件、限制和建議的<使用 SQL Server 故障轉移叢集實例 #FCI 裝載可用性複本的必要條件、限制和建議>一節。

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

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

FCI 內的節點 可用性群組內的複本
使用 WSFC 叢集 是的 是的
保護等級 實例 資料庫
儲存體類型 共用 非共用

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

FCI 特定

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

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

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

**可用性群組的容錯移轉原則設定適用於所有複本,無論複本裝載於獨立執行個體或 FCI 執行個體。

備註

如需不同 SQL Server 版本故障轉移叢集和 AlwaysOn 可用性群組節點數目的詳細資訊,請參閱 SQL Server 2012 版本支援的功能https://go.microsoft.com/fwlink/?linkid=232473)。

FCI 裝載可用性複本的考量

這很重要

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

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

您可能需要配置 Windows Server 故障轉移叢集(WSFC),以包括並納入並非所有節點都可存取的共用磁碟。 例如,假設兩個數據中心之間有三個節點的 WSFC 叢集。 其中兩個節點會在主要數據中心裝載 SQL Server 故障轉移叢集實例 (FCI),並可以存取相同的共用磁碟。 在另一個資料中心,第三個節點裝載 SQL Server 獨立執行個體,而且無法存取主要資料中心的共用磁碟。 如果FCI裝載主要複本,而獨立實例裝載次要複本,此WSFC叢集組態支援部署可用性群組。

當您選擇讓 FCI 裝載給定可用性群組的可用性複本時,請確定 FCI 容錯移轉不會使單一 WSFC 節點嘗試裝載同一個可用性群組的兩個可用性複本。

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

Marcel 會設定兩個具有兩個節點的 WSFC 叢集, NODE01 以及 NODE02。 他在NODE01NODE02上同時安裝 SQL Server 故障轉移叢集實例fciInstance1,其中NODE01fciInstance1的目前擁有者。
在 上 NODE02,Marcel 會安裝另一個 SQL Server 實例, Instance3這是獨立實例。
NODE01,Marcel 會為 Always On 可用性群組啟用 fciInstance1。 NODE02,他為 Always On 可用性群組啟用 Instance3。 然後,他設定了裝載主要複本的可用性群組 fciInstance1 ,並 Instance3 裝載次要複本。
在某些時刻,fciInstance1 變得不可用於 NODE01,因此 WSFC 叢集會執行故障轉移,將 fciInstance1 轉移至 NODE02。 故障轉移之後,fciInstance1 是已啟用 Always On 可用性群組的實例,並在 NODE02 上執行主要角色。 但是, Instance3 現在位於與 fciInstance1相同的 WSFC 節點上。 這違反了AlwaysOn可用性群組條件約束。
若要更正此案例所呈現的問題,獨立實例Instance3必須位於與 和 NODE02相同的WSFC叢集中NODE01的另一個節點上。

如需 SQL Server 故障轉移叢集的詳細資訊,請參閱 AlwaysOn 故障轉移叢集實例 (SQL Server)

WSFC 容錯移轉叢集管理員與可用性群組一起使用的限制

不要使用容錯移轉叢集管理員操作可用性群組,例如:

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

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

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

相關內容

另請參閱

AlwaysOn 可用性群組概觀 (SQL Server)啟用和停用 AlwaysOn 可用性群組 (SQL Server)監視可用性群組 (Transact-SQL)
AlwaysOn 故障轉移叢集實例 (SQL Server)