首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 叢集架構深度解析:主動/被動 vs 主動/主動、部署成本與高可用策略

     編輯:關於SqlServer

SQL Server 容錯移轉叢集 (FCI) 是傳統高可用 (HA) 基石,提供執行個體級故障轉移。本文深度剖析叢集類型、架構原理、部署先決條件、授權成本、效能影響、災難恢復 (DR) 整合,助您做出正確架構決策。

核心概念:FCI ≠ 負載平衡

  • FCI (Failover Cluster Instance): 單一 SQL Server 執行個體跨節點故障轉移,同一時間僅一節點擁有資源群組 (磁碟、IP、網名、服務)。
  • 非負載平衡: 被動節點完全閒置 (主動/被動) 或運行另一獨立實例 (主動/主動),無法將單一查詢分散至多節點並行執行。
  • 共享儲存: 所有節點必須連接同一組 LUN (SAN/iSCSI/共用磁碟),資料檔、日誌檔、TempDB 均置於共享儲存。

兩種叢集拓撲

1. 主動/被動 — 經典 HA

優點缺點
故障轉移後效能無損失 (單實例獨享資源)硬體利用率低 (被動節點 100% 閒置)
架構簡單、除錯容易授權成本:僅需授權作用中節點核心 (SA 軟體保障可免費覆蓋被動節點)
支援所有版本 (Standard/Enterprise)維護窗口需安排故障轉移演練

2. 主動/主動 — 硬體利用率最大化

優點缺點
兩節點皆運行實例,硬體 ROI 翻倍故障轉移後單節點承載雙實例,效能下降 30-50%+
可將不同業務隔離至不同實例授權成本雙倍 (需授權兩節點所有核心)
滾動升級較彈性實例間資源爭用、TempDB 競爭、記憶體壓力需精細規劃

部署先決條件清單

  1. Windows Server Failover Clustering (WSFC) 功能 安裝於所有節點
  2. 硬體相容性清單 (HCL) 認證:伺服器、HBA、交換機、儲存陣列必須通過「Windows Server Certified」
  3. 網路: 至少兩張 NIC — 公用 (客戶端連線) + 私用 (心跳/叢集通訊);建議再加一張 iSCSI/儲存專用
  4. 儲存: 共享磁碟 (SCSI-3 Persistent Reservation)、CSV (Cluster Shared Volumes) 或 SMB 3.0 共用 (SQL 2012+)
  5. 網域帳號: SQL Server 服務帳號、Agent 服務帳號必須為網域帳號,非 Local System;具備「作為服務登入」、「鎖定記憶體頁面」、「執行磁碟維護工作」權限
  6. IP/網名: 每個 FCI 需獨立虛擬 IP (VIP) 與網路名稱 (VNN),預先在 DNS/AD 建立
  7. 相依性排序: 儲存 → 網路名稱 → IP → SQL Server 服務 → Agent 服務

授權模型關鍵點

  • Enterprise Edition: 核心授權,SA (Software Assurance) 享「被動節點免授權」權益
  • Standard Edition: 核心授權,同樣享 SA 被動節點免授權;但 Standard FCI 限制:最多 2 節點、單實例最多 4 核心/24 核心 (SQL 2019)、無線上索引重建、無資料壓縮
  • 主動/主動: 兩節點皆作用中,雙方皆需完整授權,無免費被動節點

效能與維護實務

  • TempDB 放置: SQL 2012+ 支援 TempDB 置於本地非共享磁碟 (需相同路徑),大幅降低共享儲存 IOPS 壓力
  • 檢查點/備份: 備份目標為共享磁碟,僅作用中節點執行;被動節點不可備份
  • 修補策略: 滾動更新 — 先修補被動節點 → 故障轉移 → 修補原主動節點 → 可選故障回復
  • 監控指標: 叢集資源群組狀態、網路心跳延遲、共享磁碟延遲/佇列長度、SQL Server 執行個體健康狀態 (sp_server_diagnostics)

FCI + AlwaysOn AG:混合 HA/DR 架構

現代最佳實務:

  • 同資料中心:FCI 提供執行個體級自動故障轉移 (RTO < 30 秒)
  • 跨資料中心:AlwaysOn 可用性群組 (AG) 提供資料庫級非同步/同步複寫、可讀次要複本、自動容錯移轉 (需 WSFC 跨站台)
  • AG 複本可部署於 FCI 節點上,實現「FCI 內高可用 + AG 跨站災備」雙層防護

常見誤區澄清

選擇 FCI 還是 AG、或是混合部署,取決於 RTO/RPO 目標、預算、團隊運維能力、應用程式對連線字串變更的容忍度。FCI 仍是「不想改應用、要最快故障轉移、預算有限」的首選方案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
誤區事實
FCI 能提升查詢效能不能,單一實例單節點運行,無平行擴展能力
主動/主動 = 負載平衡只是跑兩個獨立實例,單一資料庫仍單節點
共享磁碟 = 單點故障儲存陣列本身有雙控制器、多路徑、RAID,非單點
Standard Edition 不能做 FCI可做,但限制 2 節點、核心數、功能受限