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

SQL Server 2005 資料庫鏡像高可用性架構深度解析與實作手冊

     編輯:SQL Server 2005

核心概念

  • 主體伺服器:服務客戶端、處理交易、同步記錄至鏡像。
  • 鏡像伺服器:熱備份、REDO 記錄、故障時升級為主體。
  • 見證伺服器:仲裁角色、監控雙方心跳、觸發自動容錯移轉(不存資料)。

角色可互換:容錯移轉後原主體變鏡像、原鏡像變主體。

三大運作模式

模式交易安全性見證自動容錯移轉資料遺失適用場景
高可用性FULL (同步)必要支援無金融/證券/核心業務
高保護FULL (同步)無手動無資料完整性優先、可接受停機
高效能OFF (非同步)無強制服務(可能遺失)可能跨機房/高延遲/效能優先

鏡像運作流程 (高可用性模式)

  1. 客戶端提交交易 → 主體寫入記錄檔 → 發送記錄區塊至鏡像。
  2. 鏡像 REDO 記錄 → 寫入記錄檔 → 回覆 ACK。
  3. 主體收到 ACK → 向客戶端認可完成。
  4. 關鍵優化:SQL 2005 採**實體記錄層級 REDO**,主體不等待鏡像 UNDO(回滾),故障切換後鏡像可秒級上線,UNDO 背景續跑。

部署實作步驟 (T-SQL 版)

1. 版本需求

SQL Server 2005 **SP1 以上** (9.00.2047+) 才支援鏡像,建議直接打 SP2 (9.00.3042+)。

2. 準備鏡像資料庫

-- 主體:完整備份 + 記錄備份
BACKUP DATABASE Northwind TO DISK='C:\NW.bak';
BACKUP LOG Northwind TO DISK='C:\NW_log.bak';

-- 鏡像:NORECOVERY 還原
RESTORE DATABASE Northwind FROM DISK='C:\NW.bak' WITH NORECOVERY;
RESTORE LOG Northwind FROM DISK='C:\NW_log.bak' WITH NORECOVERY;

3. 建立端點 (三台皆需)

-- 主體/鏡像:夥伴端點
CREATE ENDPOINT DBMirroring
    STATE = STARTED
    AS TCP (LISTENER_PORT = 5022)
    FOR DATABASE_MIRRORING (ROLE = PARTNER, ENCRYPTION = SUPPORTED);

-- 見證:見證端點
CREATE ENDPOINT DBMirroring
    STATE = STARTED
    AS TCP (LISTENER_PORT = 5022)
    FOR DATABASE_MIRRORING (ROLE = WITNESS, ENCRYPTION = SUPPORTED);

4. 安全性:授與服務帳號 CONNECT 權限

GRANT CONNECT ON ENDPOINT::DBMirroring TO [DOMAIN\ServiceAccount];

5. 啟動鏡像會話 (順序關鍵)

-- 1. 鏡像端指定夥伴
ALTER DATABASE Northwind SET PARTNER = 'TCP://Principal:5022';

-- 2. 主體端指定夥伴
ALTER DATABASE Northwind SET PARTNER = 'TCP://Mirror:5022';
-- 此時為「高保護模式」同步無自動容錯移轉

-- 3. 主體端指定見證
ALTER DATABASE Northwind SET WITNESS = 'TCP://Witness:5022';

-- 4. 設定交易安全性 FULL (高可用性)
ALTER DATABASE Northwind SET SAFETY FULL;

驗證與監控

  • SSMS 資料庫屬性 →「鏡像」頁籤查看狀態:SYNCHRONIZED 表示同步完成。
  • T-SQL:SELECT * FROM sys.database_mirroring; / sys.database_mirroring_witnesses。

自動容錯移轉測試

停用主體網卡 → 鏡像狀態變 PRINCIPAL**/DISCONNECTED** → 見證確認主體失聯且與鏡像聯繫正常 → 鏡像自動升級為主體 → 客戶端連線字串含 Failover Partner 即可無縫重導。

應用層連線字串


叢集整合 (進階)

可搭配 Windows Server Failover Clustering (WSFC) 為主體/鏡像提供節點級高可用性,形成「叢集 + 鏡像」雙層保護。

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