前言
SQL Server 2008 內建四大高可用性技術。DBA 必須掌握各方案優缺點、限制條件、適用場景,依企業 RPO/RTO、預算、架構做選型。
一、資料庫鏡像
架構
- 一主體 + 一鏡像 (+ 選擇性見證伺服器自動容錯移轉)。
- 交易記錄區塊同步傳送至鏡像並重做。
兩種模式
| 模式 | 同步方式 | 資料安全性 | 效能影響 | 容錯移轉 |
| 高安全性 (同步) | 主體等待鏡像寫入記錄檔確認 | 最高(零資料遺失) | 延遲 = 網路 RTT + 鏡像寫入時間 | 見證伺服器可自動 |
| 高效能 (非同步) | 主體不等待鏡像確認 | 可能遺失未傳送記錄 | 最低 | 僅手動強制容錯移轉 |
優點
- 近乎瞬間容錯移轉(高安全性 + 見證伺服器)。
- 設定簡單,無共享儲存需求。
- 資料庫快照支援鏡像資料庫唯讀報表。
缺點/限制
- 單一鏡像副本(需多副本時搭配日誌傳送)。
- 僅支援標準版/企業版,Express 不支援。
- 不支援 FILESTREAM、FILETABLE、跨資料庫交易、全文檢索目錄同步。
- 主體/鏡像必須相同版本、相同修補層級。
二、日誌傳送
架構
- 一主資料庫 → 多輔助資料庫(不同伺服器實例)。
- 三步驟作業:備份記錄 → 複製 → 還原 (NORECOVERY/STANDBY)。
- 可設定延遲還原間隔(如 4 小時),提供「時間機器」保護邏輯錯誤。
優點
- 單一主資料庫支援多個輔助副本(異地災備)。
- 可設定還原延遲,防範誤刪/誤更新。
- 輔助資料庫可 STANDBY 唯讀供報表查詢。
- 版本相容性寬鬆(主/輔可不同版本)。
缺點
- 容錯移轉需手動套用剩餘記錄備份,RTO 較長。
- 無自動容錯移轉機制。
- 頻率受限於記錄備份間隔(通常 15 分鐘起),RPO 較大。
組合策略
鏡像(高可用)+ 日誌傳送(異地災備/延遲還原/多副本)互補。
三、容錯移轉叢集
架構
- 2+ 節點共享儲存體(SAN/共享磁碟),單一作用中節點擁有資源群組。
- 虛擬網路名稱/IP,客戶端透明連線。
- 硬體層面高可用(OS/硬體故障自動移轉)。
優點
- 自動偵測與容錯移轉(OS 故障、硬體故障、滾動升級)。
- 客戶端透明重導向(虛擬名稱不變)。
- 保護整個 SQL Server 實例(含系統資料庫、Agent 作業、連結伺服器等)。
缺點/限制
- 共享儲存體 = 單點故障(需儲存體層 HA:多路徑、RAID、雙控制器)。
- 不防護磁碟損毀/資料損壞(邏輯錯誤同步複製)。
- 硬體成本高,需 Windows Server Enterprise/Datacenter + 認證硬體清單 (HCL)。
- 無備用節點報表功能(非作用中節點不可讀取)。
- 僅支援單一資料庫副本(同鏡像)。
四、複寫
架構
- 發佈/訂閱模型:發佈者 → 散發者 → 訂閱者(可多對多)。
- 三類型:快照、交易式、合併式。
- 支援篩選(垂直/水平)、分區更新。
優點
- 資料篩選:訂閱者僅接收所需子集,頻寬/儲存省力。
- 最低延遲:交易式複寫近乎即時同步。
- 訂閱者線上可讀,支援報表、異構平台(Oracle/DB2 訂閱)。
- 可做多主雙向寫入(合併式/點對點交易式)。
缺點
- 設定/監控/疑難排解複雜度最高。
- DDL 變更傳播需謹慎規劃。
- 衝突偵測/解決(合併式)增加開發負擔。
- 非自動容錯移轉,需外部機制切換連線字串。
選型決策矩陣
| 需求 | 首選 | 備選/組合 |
| 自動容錯移轉、RTO < 30 秒、零資料遺失 | 鏡像 (高安全性+見證) | FCI (共享儲存體) |
| 異地災備、多副本、可容忍分鐘級 RPO | 日誌傳送 | 鏡像(非同步)+日誌傳送 |
| 硬體故障自動移轉、保護整個實例 | FCI | 鏡像+FCI (多站台叢集) |
| 報表卸載、資料子集、異構平台 | 交易式複寫 | 鏡像快照/日誌傳送 STANDBY |
| 多地多寫、離線同步 | 合併式複寫 | 點對點交易式複寫 |
總結
沒有銀彈。生產環境常採用組合策略:FCI 保護實例層硬體故障 → 鏡像提供資料庫層自動容錯移轉 → 日誌傳送提供異地災備與延遲還原 → 複寫滿足報表卸載與資料分發。DBA 應依業務 SLA、預算、團隊技能綜合規劃。