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

SQL Server 2005 資料庫鏡像完整技術白皮書

     編輯:SQL Server 2005

資料庫鏡像 是 SQL Server 2005 引入的高可用性解決方案,以資料庫為單位、基於交易記錄傳送實現熱備援。本文系統整理其架構、模式、角色切換、版本支援與部署要點。

核心架構:兩大角色、可選見證

角色說明
主體伺服器提供線上服務,處理用戶讀寫,交易記錄同步傳送至鏡像
鏡像伺服器維護熱備份資料庫,正常情況不可讀寫,故障轉移後升級為主體
見證伺服器不存放資料,僅監控雙方心跳,支援自動故障轉移 (需高安全性模式)

運作模式比較

模式同步性資料保護效能影響自動容錯移轉適用場景
高安全性 (同步)同步零資料遺失交易延遲較高需見證伺服器金融、訂單、核心業務
高安全性 (同步、無見證)同步零資料遺失交易延遲較高僅手動容錯移轉可接受人工介入的核心業務
高效能 (非同步)非同步可能遺失資料主體幾無延遲不支援 (需強制服務)跨機房、跨城市、報表/BI 次要庫

交易安全性與 SAFETY 選項

  • SAFETY FULL (預設) = 同步模式 = 高安全性。主體等待鏡像寫入記錄檔確認 (ACK) 才回覆用戶 Commit。
  • SAFETY OFF = 非同步模式 = 高效能。主體發送記錄後立即回覆用戶,不等待鏡像確認。
  • 見證伺服器僅在 SAFETY FULL 時生效;SAFETY OFF 時必須 WITNESS OFF。

角色切換三種形式

  1. 自動故障轉移:高安全性 + 見證 + 已同步。見證確認主體不可達且鏡像可達時觸發。
  2. 手動故障轉移:高安全性 + 雙方連線正常 + 已同步。DBA 執行 ALTER DATABASE ... SET PARTNER FAILOVER。
  3. 強制服務 (允許資料遺失):高效能模式或無見證的高安全性。主體掛掉、鏡像存活時,於鏡像執行 ALTER DATABASE ... SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS。

版本支援矩陣

版本夥伴支援見證支援非同步 (高效能)
Enterprise SP1+✅✅✅
Standard SP1+✅✅❌
Workgroup SP1+❌✅❌
Express SP1+❌✅❌

限制:夥伴雙方版本必須相同;master、msdb、tempdb、model 不可鏡像;僅支援完整復原模式資料庫。

部署前置檢查清單

  • ✅ 兩台伺服器網路互通 (TCP 5022 預設端點)
  • ✅ 主體資料庫設為 完整復原模式
  • ✅ 主體完整備份 + 記錄備份 → 鏡像端 RESTORE ... WITH NORECOVERY
  • ✅ 建立鏡像端點 (CREATE ENDPOINT ... FOR DATABASE_MIRRORING),角色 PARTNER/WITNESS,啟用加密
  • ✅ 服務帳戶具備端點 CONNECT 權限 (GRANT CONNECT ON ENDPOINT::...)
  • ✅ 依序設定夥伴:先在鏡像 SET PARTNER = 'TCP://Principal:5022',再在主體 SET PARTNER = 'TCP://Mirror:5022',最後主體 SET WITNESS = ...、SET SAFETY FULL

用戶端透明連線

.NET Framework 2.0+ / SQL Native Client / JDBC 1.1+ 支援連線字串指定 Failover Partner=MirrorServer,驅動程式自動處理重導向,應用程式無感知。

架構圖示

鏡像基本架構
含見證伺服器架構

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved