SQL Server High Availability 高可用性架構解決方案


  1. Technology terms
    1. RTO, Recovery Time Objective
    2. RPO, Recovery Point Objective
    3. WRT, Work Recovery Time
    4. WSFC, Windows Server Failover Cluster
    5. CSV, Cluster Shared Volumes
  2. HA Solution
    1. Always On SQL Server Failover Cluster Instance (FCI)
    2. Always On SQL Server Always On Availability Group (AG)
    3. Database Mirror 鏡像
    4. Log Shipping
    5. Always On solutionComparision
  3. 參考資料

筆記 SQL Server 高可用性架構解決方案以及相關技術名詞,包含可用性群組、容錯移轉叢集以及資料庫鏡像與交易紀錄傳送等各種方式介紹與比較 🧣

SQL Server Logo

Technology terms

RTO, Recovery Time Objective

災難復原時,至可提供服務狀態所需要的時間

RPO, Recovery Point Objective

災難復原時,損失的資料量

WRT, Work Recovery Time

從 RTO 完成提供之可服務狀態至完全恢復至災難前的狀態所需時間,包含了 WorkBacklog 以及 Lost Data 的復原作業

WSFC, Windows Server Failover Cluster

Failover Cluster 或稱為 容錯移轉叢集是由各叢集伺服器 (Node) 經由實體纜線及軟體所連接,形成一個當其中節點失效後,其他接點接續失效節點服務的容錯機制,同時此機制是建立於伺服器的作業系統層級。

WSFC 也是高可用性架構的前提,不論是使用 HA Solution 中的 FCI 或者 AG 都必須仰賴 WSFC 來進行。

CSV, Cluster Shared Volumes

CSV 或稱叢集共用磁碟區,可讓容錯移轉叢集中的多節點,同時對 NTFS 磁碟區相同 LUN 具有讀寫權限。因此叢集角色可在 Node 間快速容錯移並助於簡化容錯移轉 LUN 管理問題。

Failover Clustering in Windows Server

HA Solution

Business continuity and database recovery - SQL Server

Always On SQL Server Failover Cluster Instance (FCI)

可用性的範疇為資料庫執行個體,在 Storage 上必須藉由 SAN 或者 SMB 讓不同的 Instance 共享。當錯誤發生時,由其他的節點接續存取相同的 Storage 提供服務。

Always On SQL Server Always On Availability Group (AG)

可用性群組的範疇為資料庫本身,Storage 則取決於各 Node 的方式,各 Node 各自保有專門的複本,因此在可用性上是利用抄寫的方式讓各節點達到內容的一致。當錯誤發生時,主動移轉到其他節點,鏡像技術的接班者

Database Mirror 鏡像

分為高可用模式、高保護模式以及高效率模式,其中高可用模式可以作為 HA Solution,在高可用模式需要額外的鏡像見證伺服器 (Mirror Witness) 來自動容錯移轉,未來可能會被 AG 取代,不在受支援。

Mode Description
高可用 資料不會遺失,需要鏡像見證,自動進行容錯移轉
高保護 資料不會遺失,不需要鏡像見證,需要手動進行容錯移轉
高效率 資料可能發生遺失

Log Shipping

藉由將交易紀錄檔以固定間隔時間的方式傳送到備用的資料庫伺服器,無法作為 HA Solution,但可以輔助作為 DR 或者資料庫 Snapshot 的技術。

Always On solutionComparision

Solutions Pros Cons Scenario
FCI Instance Level
AG
Mirror

參考資料

漫談高可用性與災難重建的規劃與評估(第三集)

Windows Server Failover Clustering with SQL Server

Failover Clustering and Always On Availability Groups (SQL Server)

What is an Always On availability group

Always On availability groups: a high-availability and disaster-recovery solution

SQL Server 各種 HA 方案比較