共用方式為


Always On 容錯移轉叢集執行個體 (SQL Server)

適用於:SQL Server

SQL Server Always On 容錯移轉叢集執行個體使用 Windows Server 容錯移轉叢集 (WSFC) 提供本機高可用性。 容錯移轉叢集執行個體 (FCI) 在伺服器執行個體層級屬於備援。 FCI 是跨 Windows Server 叢集節點安裝的單一 SQL Server 執行個體,而且可能跨多個子網路。 在網路上,FCI 看似在單一電腦執行的 SQL Server 執行個體,但是 FCI 提供容錯移轉,可以在目前的 WSFC 節點無法使用時,從該節點容錯移轉到另一個節點。

FCI 可以利用 Always On 可用性群組提供資料庫層級的遠端災害復原。 如需詳細資訊,請參閱 故障轉移叢集和 AlwaysOn 可用性群組 (SQL Server)

WINDOWS Server 2016 Datacenter 版本引進的 SQL Server 故障轉移叢集實例支援叢集記憶體資源的儲存空間直接存取 (S2D)。 如需詳細資訊,請參閱 Windows Server 中的儲存空間直接存取

容錯移轉叢集執行個體也支援叢集共用磁碟區 (CSV)。 如需詳細資訊,請參閱了解容錯移轉叢集的叢集共用磁碟區

容錯移轉叢集執行個體的優點

當伺服器的硬體或軟體故障時,連線到伺服器的應用程式或用戶端會經歷停機。 備援節點會在 SQL Server 實例是 FCI 而不是獨立實例時保護其可用性。 在任何時候,FCI 中僅其中一個節點擁有 WSFC 資源群組。 如果發生失敗(例如硬體故障、作系統失敗、應用程式或服務失敗),或在計劃性升級期間,叢集會將資源群組擁有權移至另一個WSFC節點。 連線到 SQL Server 的用戶端或應用程式不會察覺此流程。 這可將應用程式或用戶端失敗期間的停機時間縮到最短。 下面列出 SQL Server 容錯移轉叢集執行個體所提供的一些主要優點:

  • 透過備援性在執行個體層級提供保護。

  • 發生故障時自動故障轉移(硬體故障、作業系統故障或應用程式和服務故障)。

    重要

    在可用性群組中,不支援從FCI自動故障轉移至可用性群組內的其他節點。 這表示,如果自動故障轉移是高可用性解決方案的重要元件,FCI 和獨立節點不應該結合在可用性群組內。 不過,這種耦合適用於「災害復原」方案。

  • 支援眾多儲存方案,包括 WSFC 叢集磁碟 (iSCSI、光纖通道等) 和伺服器訊息區塊 (SMB) 檔案共用。

  • 使用多重子網路 FCI 或在可用性群組內執行 FCI 託管之資料庫的災害復原。 利用 Microsoft SQL Server 2012 (11.x) 中的新多重子網路支援,多重子網路 FCI 不再需要虛擬 LAN,提高了多重子網路 FCI 的管理能力和安全性。

  • 容錯移轉期間,應用程式和用戶端的零重新設定。

  • 自動容錯移轉之細微觸發事件的彈性容錯移轉原則。

  • 透過使用專用且持續連線之定期詳細健康情況偵測的可靠容錯移轉。

  • 在容錯移轉時間透過間接背景檢查點的可設定性和可預測性。

  • 在容錯移轉期間節流的資源使用狀況。

建議

在生產環境中,使用靜態IP位址搭配故障轉移叢集實例的虛擬IP位址。

請勿在實際執行環境使用 DHCP。 在停機時,如果 DHCP IP 租用過期,則需要額外的時間來重新註冊與 DNS 名稱相關聯的新 DHCP IP 位址。

故障轉移叢集實例概觀

FCI 在具有一個或多個 WSFC 節點的 WSFC 資源群組中執行。 當 FCI 啟動時,其中一個節點會取得資源群組擁有權,並使其 SQL Server 執行個體上線。 此節點所擁有的資源包括:

  • 網路名稱
  • IP 位址
  • 共用磁碟
  • SQL Server Database Engine Service
  • SQL Server Agent 服務
  • SQL Server Analysis Services 服務 (如果已安裝)
  • 一個檔案共用資源 (如果已安裝 FILESTREAM 功能)

在任何時候,僅資源群組擁有者在資源群組中執行其各自 SQL Server 服務,FCI 中的其他節點並不執行。 當發生容錯移轉時,無論是自動容錯移轉或計畫的容錯移轉,就會依下列順序發生事件:

  1. 除非發生硬體或系統失敗,否則在緩衝快取中的所有中途分頁都會寫入磁碟。

  2. 在使用中節點上資源群組的所有各自 SQL Server 服務都會停止。

  3. 資源群組擁有權將轉移到 FCI 中的另一個節點。

  4. 新資源群組擁有者啟動其 SQL Server 服務。

  5. 用戶端應用程式的連接要求自動導向至使用相同虛擬網路名稱 (VNN) 的新使用中節點。

只要其基礎 WSFC 叢集保持良好的仲裁狀況 (多數仲裁 WSFC 節點可做為自動容錯移轉目標使用),FCI 就是線上狀態。 當 WSFC 叢集失去其仲裁時 (無論由於硬體、軟體、網路失敗或仲裁組態不正確),整個 WSFC 叢集與 FCI 就會離線。 在此未規劃的容錯移轉情況下,需要手動介入,在剩餘可用的節點中重新建立仲裁,以使 WSFC 叢集和 FCI 恢復連線。 如需詳細資訊,請參閱 WSFC 仲裁模式與投票設定 (SQL Server)

可預測的容錯移轉時間

根據 SQL Server 執行個體上次執行檢查點作業的時間,緩衝快取中可能有相當多的中途分頁。 因此,容錯移轉的持續時間與剩餘中途分頁寫入磁碟所需的時間一樣長,這可能導致冗長且不可預測的容錯移轉時間。 從 Microsoft SQL Server 2012 (11.x) 開始,FCI 可以使用間接檢查點,節流緩衝快取中保留的中途分頁數量。 雖然這會在一般工作負載下耗用更多資源,但它可讓故障轉移時間更可預測且更容易設定。 當您組織中的服務等級協定指定高可用性解決方案的復原時間目標 (RTO) 時,這會很有用。 如需有關間接檢查點的詳細資訊,請參閱< Indirect Checkpoints>。

可靠的狀況監控和彈性的容錯移轉原則

成功啟動FCI之後,WSFC服務會監視基礎 WSFC 叢集的健康情況,以及 SQL Server 實例的健康情況。 從 Microsoft SQL Server 2012 (11.x) 開始,WSFC 服務使用專用連線,透過系統預存程序來輪詢使用中 SQL Server 執行個體,以取得詳細元件診斷。 這具有三方面的意義:

  • SQL Server 執行個體的專用連線可一直可靠地輪詢元件診斷,即使 FCI 負載過重也一樣。 這能夠區別負載過重的系統和實際發生失敗狀況的系統,因此防止假容錯移轉等問題發生。

  • 詳細的元件診斷可讓您設定更具彈性的故障轉移原則,讓您可以選擇哪些失敗狀況觸發故障轉移,以及哪些失敗狀況沒有。

  • 詳細的元件診斷也啟用自動容錯移轉更好的、追溯性的疑難排解。 診斷資訊儲存在記錄檔中,與 SQL Server 錯誤記錄檔共置。 您可以將它們載入記錄檔檢視器中,檢查容錯移轉發生前的元件狀態,以便判斷何種狀況導致該容錯移轉。

如需更多資訊,請參閱 容錯叢集實例的故障轉移策略

容錯移轉叢集執行個體的元素

FCI 是由一組實體伺服器 (節點) 所組成,包含相似硬體組態和相同軟體組態,包括作業系統版本和修補程式等級,以及 SQL Server 版本、修補程式等級、元件和執行個體名稱。 需要相同軟體組態,以確保 FCI 在節點之間容錯移轉時可完整運作。

WSFC 資源群組

SQL Server FCI 在 WSFC 資源群組中執行。 資源群組中的每個節點都會維護組態設定和檢查點登錄機碼的同步副本,以確保在容錯移轉後 FCI 可完整運作,而且在任何時候叢集中僅其中一個節點 (使用中節點) 擁有資源群組。 WSFC 服務管理伺服器叢集、仲裁組態、容錯移轉原則和容錯移轉作業,以及 FCI 的 VNN 和虛擬 IP 位址。 如果發生失敗(硬體故障、作業系統故障或應用程式和服務失敗)或計劃性升級,資源群組擁有權會移至FCI中的另一個節點。 WSFC 資源群組中支援的節點數目取決於您的 SQL Server 版本。 此外,相同 WSFC 叢集可以執行多個 FCI (多個資源群組),視 CPU、記憶體和磁碟數目等硬體容量而定。

SQL Server 二進位檔

產品二進位檔案會在 FCI 的每個節點上本機安裝,此程序類似於 SQL Server 獨立安裝。 不過,在啟動期間,服務不會自動啟動,而是由WSFC管理。

儲存體

FCI 與可用性群組相反,前者必須在 FCI 的所有節點之間使用共用儲存體,以供資料庫和記錄檔儲存。 共用儲存體可以採用 WSFC 叢集磁碟、SAN 磁碟、儲存空間直接存取 (S2D) 或 SMB 檔案共用的形式。 如此一來,每當發生容錯移轉時,FCI 中的所有節點都有相同的執行個體資料檢視。 不過,這表示共用儲存體是潛在的單一失敗點,而 FCI 仰賴基礎儲存方案以確保資料保護。

網路名稱

FCI 的 VNN 為 FCI 提供統一的連接點。 這允許應用程式連接到 VNN,而無需知道目前使用中的節點。 當發生容錯移轉時,VNN 會在新使用中節點啟動後註冊給它。 此程序對連線至 SQL Server 的用戶端或應用程式而言十分簡單,而且會將應用程式或用戶端在失敗期間當機的機會降到最低。

虛擬 IP

在多重子網路 FCI 的情況下,FCI 中的每個子網路會被指派一個虛擬 IP 位址。 在容錯移轉期間,DNS 伺服器上的 VNN 會更新,以指向各自子網路的虛擬 IP 位址。 在多重子網路容錯移轉後,應用程式和用戶端可以使用相同 VNN 連接到 FCI。

SQL Server 容錯移轉概念和工作

概念和工作 文章
描述失敗偵測機制和彈性的容錯移轉原則。 叢集實例的故障轉移原則
描述 FCI 管理和維護的概念。 故障轉移叢集實例管理和維護
描述多重子網路組態和概念 SQL Server 多重子網路叢集 (SQL Server)

Windows Server 故障轉移叢集上的 SQL Server FCI 支援設定 (WSFC)

Microsoft 支援以下產品中的以 WSFC 為基礎的 SQL Server FCI:

  • Windows Server 2012
  • Windows Server 2012 R2
  • Windows Server 2016 Standard 和 Datacenter Editions
  • Windows Server 2019 Standard 和 Datacenter Editions
  • Windows Server 2022 Standard 和 Datacenter Editions

注意

如需 Windows Server 2012 和 Windows Server 2012 R2,請參閱 windows Server 故障轉移叢集Microsoft支持原則

Windows Server 提供兩種類型的叢集服務:

如果節點遺失或 SQL Server 實例存在問題,則只有伺服器叢集解決方案可以與 SQL Server 一起使用,以取得高可用性。 在某些情況下,網路負載平衡可能會與獨立只讀 SQL Server 安裝搭配使用。

每個 SQL Server FCI 都需要:

  • 具有唯一指派磁碟機代號的專用叢集。
  • 至少一個唯一的IP位址。
  • 網域內的唯一虛擬伺服器和實例名稱。

第三方叢集解決方案支援

SQL Server 是使用 Microsoft 伺服器叢集進行開發和測試。 使用第三方叢集產品時,安裝、效能或叢集行為問題的主要支援聯繫人應該是第三方解決方案提供者。 Microsoft提供商業上合理的第三方叢集安裝支援,類似於支持獨立 SQL Server 部署。

支援的節點數目

如需 AlwaysOn 故障轉移叢集實例所支援節點數目上限的詳細資訊,請參閱:

支援的作業系統

如需 SQL Server 故障轉移叢集支援的作系統,請參閱 安裝故障轉移叢集之前先確認您的作系統

掛接的磁碟驅動器

在包含 SQL Server 安裝的叢集上,不支援使用掛接的磁碟驅動器。 如需詳細資訊,請參閱 掛接磁碟區的 SQL Server 支援。

叢集共用磁碟區 (CSV)

SQL Server 2012 (11.x) 和舊版不支援在故障轉移叢集中使用 CSV for SQL Server。

若要搭配 SQL Server 2014 (12.x) 或更新版本使用 CSV,請檢閱下列資源:

域控制器限制

設定為域控制器的故障轉移叢集實例節點上不支援 SQL Server 故障轉移叢集實例實例。

網域移轉考慮

SQL Server 2005 (9.x) 和更新版本無法移轉至新的網域。 您必須卸載並重新安裝故障轉移叢集元件。 如需如何將 Windows Server 叢集從某個網域移至另一個網域的詳細資訊,請參閱 將 Windows Server 叢集從一個網域移至另一個網域。

卸載 SQL Server 之前,應該先執行下列步驟:

  • 將 SQL Server 設定為使用混合模式安全性,或將新的網域帳戶新增至 SQL Server 登入。

  • 重新命名包含系統資料庫的 DATA 資料夾,以便在重新安裝後將其換回,以減少停機時間。

  • 請勿移除下列任何元件:除非您重建整個節點,否則 SQL Server 支援檔案、SQL Server Native Client、Integration Services 或工作站元件。

警告

如果在非安裝程式期間發生錯誤,您可能需要重建節點,才能再次成功安裝 SQL Server。