適用於:SQL Server
SQL Server Always On 容錯移轉叢集執行個體使用 Windows Server 容錯移轉叢集 (WSFC) 提供本機高可用性。 容錯移轉叢集執行個體 (FCI) 在伺服器執行個體層級屬於備援。 FCI 是跨 Windows Server 叢集節點安裝的單一 SQL Server 實例,也可能跨多個子網安裝。 在網路上,FCI 看似在單一電腦執行的 SQL Server 執行個體,但是 FCI 提供容錯移轉,可以在目前的 WSFC 節點無法使用時,從該節點容錯移轉到另一個節點。
FCI 可以利用 Always On 可用性群組提供資料庫層級的遠端災害復原。 如需詳細資訊,請參閱容錯移轉叢集和 Always On 可用性群組 (SQL Server)。
SQL Server 容錯移轉叢集執行個體支援叢集儲存體資源的儲存空間直接存取,這是在 Windows Server 2016 Datacenter 版本中引進的。 如需詳細資訊,請參閱 Windows Server 中的儲存空間直接存取。
容錯移轉叢集執行個體也支援叢集共用磁碟區 (CSV)。 如需詳細資訊,請參閱 瞭解容錯移轉叢集中的叢集共用磁碟區。
注意
SQL Server 2025(17.x)引入了支援對故障轉移叢集實例進行嚴格連線強制執行。
容錯移轉叢集執行個體的優點
當伺服器硬體或軟體發生故障時,連線到伺服器的應用程式或用戶端會遇到停機。 備援節點會在 SQL Server 實例是 FCI 而不是獨立實例時保護其可用性。 在任何時候,FCI 中僅其中一個節點擁有 WSFC 資源群組。 如果發生失敗(例如硬體故障、作系統失敗、應用程式或服務失敗),或在計劃性升級期間,叢集會將資源群組擁有權移至另一個WSFC節點。 連線到 SQL Server 的用戶端或應用程式不會察覺此流程。 此程序可將應用程式或用戶端在失敗期間所經歷的停機時間降到最低。 以下是 SQL Server 容錯移轉叢集執行個體提供的一些主要優點:
透過備援性在執行個體層級提供保護。
發生故障時自動故障轉移(硬體故障、作業系統故障或應用程式和服務故障)。
重要
在可用性群組中,不支援從FCI自動故障轉移至可用性群組內的其他節點。 因此,如果自動容錯移轉是高可用性解決方案的重要元件,則 FCI 和獨立節點不應該在可用性群組內結合在一起。 不過,這種耦合適用於「災害復原」方案。
支援廣泛的儲存體解決方案,包括 WSFC 叢集磁碟 (iSCSI、光纖通道等) 和伺服器訊息區塊 (SMB) 檔案共用。
透過多子網路 FCI 或在可用性群組內執行 FCI 裝載的資料庫進行災害復原。 透過 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 中的其他節點並不執行。 發生容錯移轉時,無論是自動容錯移轉還是計劃性容錯移轉,都會發生下列事件順序:
除非發生硬體或系統失敗,否則在緩衝快取中的所有中途分頁都會寫入磁碟。
在使用中節點上資源群組的所有各自 SQL Server 服務都會停止。
資源群組擁有權將轉移到 FCI 中的另一個節點。
新資源群組擁有者啟動其 SQL Server 服務。
用戶端應用程式連線要求會自動導向至使用相同虛擬網路名稱的新作用中節點。
只要其基礎 WSFC 叢集處於良好的仲裁健康情況,FCI 就會在線上。 (大部分的仲裁 WSFC 節點都可作為自動容錯移轉目標使用。當 WSFC 叢集失去仲裁時,無論是因為硬體、軟體或網路失敗,還是仲裁設定不正確,整個 WSFC 叢集以及 FCI 都會離線。 在此未規劃的容錯移轉情況下,需要手動介入,在剩餘可用的節點中重新建立仲裁,以使 WSFC 叢集和 FCI 恢復連線。 如需詳細資訊,請參閱 WSFC 仲裁模式和投票設定 (SQL Server)。
可預測的容錯移轉時間
根據 SQL Server 執行個體上次執行檢查點作業的時間,緩衝快取中可能有相當多的中途分頁。 因此,容錯移轉的持續時間與剩餘中途分頁寫入磁碟所需的時間一樣長,這可能導致冗長且不可預測的容錯移轉時間。 從 SQL Server 2012 (11.x) 開始,FCI 可以使用間接檢查點來節流保留在緩衝區快取中的髒頁數目。 雖然這會在一般工作負載下耗用更多資源,但可讓容錯移轉時間更可預測且更可設定。 當您組織中的服務等級協定指定高可用性解決方案的復原時間目標 (RTO) 時,這會很有用。 如需詳細資訊,請參閱 間接檢查點。
可靠的狀況監控和彈性的容錯移轉原則
FCI 成功啟動之後,WSFC 服務會監視基礎 WSFC 叢集的健康情況,以及 SQL Server 執行個體的健康情況。 從 SQL Server 2012 (11.x) 開始,WSFC 服務會使用專用連線來輪詢作用中的 SQL Server 執行個體,以透過系統預存程序進行詳細的元件診斷。 產生三個影響:
SQL Server 執行個體的專用連線可一直可靠地輪詢元件診斷,即使 FCI 負載過重也一樣。 此功能可讓您區分負載過重的系統和具有故障狀況的系統,從而防止錯誤容錯移轉等問題。
詳細的元件診斷可讓您設定更彈性的容錯移轉原則,您可以選擇觸發容錯移轉的失敗條件。
詳細的元件診斷也啟用自動容錯移轉更好的、追溯性的疑難排解。 診斷資訊儲存在記錄檔中,與 SQL Server 錯誤記錄檔共置。 您可以將它們載入日誌檔案檢視器,以檢查導致容錯移轉發生的元件狀態,以判斷導致容錯移轉的原因。
如需詳細資訊,請參閱 容錯移轉叢集執行個體的容錯移轉原則。
設定 TLS 1.3 加密
SQL Server 2025(17.x)引入 TDS 8.0 支援,允許在 Windows Server 故障轉移叢集與故障轉移叢集實例間強制執行 TLS 1.3 加密。
若要開始,請檢閱 嚴格加密的連線。
注意
如果在機器上停用 TLS 1.2,SQL Server 2025 (17.x) 故障轉移叢集實例安裝會失敗。
容錯移轉叢集執行個體的元素
FCI 由一組實體伺服器 (節點) 組成,其中包含類似的硬體組態,以及相同的軟體組態,包括作業系統版本和修補程式層級,以及 SQL Server 版本、修補程式層級、元件和執行個體名稱。 需要相同的軟體組態、以確保FCI在節點之間進行容錯移轉時能夠完全運作。
WSFC 資源群組
SQL Server FCI 在 WSFC 資源群組中執行。 資源群組中的每個節點都會維護組態設定和檢查點登錄機碼的同步複本,以確保容錯移轉之後 FCI 的完整功能。 叢集中一次只有一個節點擁有資源群組 (作用中節點)。 除了 FCI 的虛擬網路名稱和虛擬 IP 位址之外,WSFC 服務還會管理伺服器叢集、仲裁設定、容錯移轉原則和容錯移轉作業。 如果發生失敗 (硬體失敗、作業系統失敗或應用程式和服務失敗) 或計劃的升級,資源群組擁有權會移至 FCI 中的另一個節點。 WSFC 資源群組中支援的節點數目取決於您的 SQL Server 版本。 此外,相同 WSFC 叢集可以執行多個 FCI (多個資源群組),視 CPU、記憶體和磁碟數目等硬體容量而定。
SQL Server 二進位檔
產品二進位檔會在本機安裝在 FCI 的每個節點上,其程式類似於 SQL Server 獨立安裝。 不過,在啟動期間,服務不會自動啟動,而是由 WSFC 管理。
儲存體
與可用性群組不同,FCI 必須在 FCI 的所有節點之間使用共用儲存體來儲存資料庫和記錄儲存體。 共用儲存體可以採用 WSFC 叢集磁碟、SAN 上的磁碟、儲存空間直接存取或 SMB 上的檔案共用的形式。 因此、每當發生容錯移轉時、FCI 中的所有節點都會具有相同的執行個體資料檢視。 然而,這意味著共享存儲有可能成為單點故障,並且 FCI 依賴底層存儲解決方案來確保數據保護。
網路名稱
FCI 的虛擬網路名稱會為 FCI 提供統一的連線點。 此統一連接點可讓應用程式連線到虛擬網路名稱,而不需要知道目前的作用中節點。 發生容錯移轉時,虛擬網路名稱會在啟動之後註冊至新的作用中節點。 此程式對連線到 SQL Server 的用戶端或應用程式是透明的,而且可將應用程式或用戶端在失敗期間所經歷的停機時間降到最低。
下列螢幕擷取畫面顯示容錯移轉叢集管理員中容錯移轉叢集執行個體的網路名稱:
虛擬 IP
在多重子網路 FCI 的情況下,FCI 中的每個子網路會被指派一個虛擬 IP 位址。 在容錯移轉期間,DNS 伺服器上的虛擬網路名稱會更新為指向個別子網路的虛擬 IP 位址。 然後,應用程式和用戶端可以在多子網路容錯移轉之後,使用相同的虛擬網路名稱連線到 FCI。
SQL Server 容錯移轉概念和工作
| 概念和工作 | 文章 |
|---|---|
| 描述失敗偵測機制和彈性的容錯移轉原則。 | 容錯移轉叢集執行個體的容錯移轉原則 |
| 描述 FCI 管理和維護的概念。 | 容錯移轉叢集執行個體管理和維護 |
| 說明多子網路組態和概念。 | SQL Server 多子網路叢集 |
WSFC 上支援的 SQL Server FCI 設定
下列產品支援以 WSFC 為基礎的 SQL Server FCI:
- Windows 伺服器 2012
- Windows Server 2012 R2
- Windows Server 2016 Standard 和 Datacenter 版本
- Windows Server 2019 標準版和資料中心版本
- Windows Server 2022 標準版和資料中心版
Windows Server 提供兩種類型的叢集服務:
如果節點遺失或 SQL Server 執行個體發生問題,則只有伺服器叢集解決方案可以與 SQL Server 一起使用,以實現高可用性。 在某些情況下,網路負載平衡可能會與獨立只讀 SQL Server 安裝搭配使用。
每個 SQL Server FCI 都需要:
- 具有唯一指派磁碟機代號的專用叢集群組。
- 至少一個唯一的IP位址。
- 網域內的唯一虛擬伺服器和實例名稱。
非 Microsoft 叢集解決方案支援
SQL Server 是使用 Microsoft 伺服器叢集來開發和測試。 如果您使用非 Microsoft 叢集產品,安裝、效能或叢集行為問題的主要支援連絡人應該是解決方案提供者。 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 叢集從一個網域移至另一個網域。
卸載 SQL Server 之前,您應該採取下列步驟:
將 SQL Server 設定為使用混合模式安全性,或將新的網域帳戶新增至 SQL Server 登入。
重新命名
DATA包含系統資料庫的資料夾,以便在重新安裝後可以將其交換回來,以減少停機時間。除非您要重建整個節點,否則請勿移除 SQL Server 支援檔案、SQL Server Native Client、Integration Services 或工作站元件。
警告
如果在解除安裝程式期間發生錯誤,您可能需要重建節點,才能再次成功安裝 SQL Server。