SQL Server 資料庫鏡像 部署後,需持續監控鏡像狀態、同步延遲、角色切換事件。SSMS 內建 資料庫鏡像監視器 提供圖形化儀表板,本文完整說明啟動、註冊鏡像資料庫、設定警示閾值、查看歷史記錄的操作步驟。
啟動資料庫鏡像監視器
- SSMS 物件總管任意資料庫右鍵 → 工作** → 啟動資料庫鏡像監視器**
- 或獨立啟動:
Start → Microsoft SQL Server 2005 → 配置工具 → 資料庫鏡像監視器
註冊鏡像資料庫
- 監視器視窗點選 註冊鏡像資料庫** (工具列圖示或右鍵選單)
- 伺服器實例下拉選擇鏡像夥伴實例名,若無則點 連接** 新增
- 連接對話框:
- 伺服器類型:資料庫引擎
- 伺服器名稱:鏡像主體/鏡像夥伴實例名
- 驗證:Windows 驗證 / SQL Server 驗證
- 確定後自動偵測該實例上的鏡像資料庫,勾選需監控的資料庫
- 點選 確定** 完成註冊
監視器主畫面指標說明
| 欄位 | 意義 | 正常範圍 |
| 狀態 | SYNCHRONIZED / SUSPENDED / PENDING_FAILOVER | SYNCHRONIZED (高安全模式) |
| 未傳送記錄 (KB) | 主體尚未發送至鏡像的記錄量 | 接近 0 |
| 未還原記錄 (KB) | 鏡像收到但尚未套用的記錄量 | 接近 0 |
| 最早未傳送交易 | 最舊未傳送交易時間 | 近期 |
| 效能 | 傳輸速率、延遲 | 視網路而定 |
設定警示閾值
- 選擇已註冊的鏡像資料庫
- 點選 警示** 索引標籤
- 可設定下列閾值觸發警示 (寫入 Windows 事件記錄 / SQL Agent 警示):
- 未傳送記錄超過 (KB)**:如 10240 (10 MB)
- 未還原記錄超過 (KB)**:如 10240
- 最早未傳送交易超過 (分鐘)**:如 30
- 鏡像認可成本 (ms)**:同步模式下主體等待鏡像認可的時間
- 勾選啟用並設定閾值 → 確定
查看歷史記錄
- 主畫面點選 歷程記錄** 索引標籤
- 顯示時間序列圖表與資料表:
- 狀態變更事件 (角色切換、暫停/恢復)
- 未傳送/未還原記錄趨勢
- 效能計數器歷史
- 可匯出至 Excel/CSV 進行離線分析
進階監控建議
- SQL Agent 警示整合:建立警示回應作業 (寄信、呼叫 API、執行修復腳本)
- 效能計數器收集:
LogicalDisk\Avg. Disk sec/Read、SQLServer:Database Mirroring\Bytes Received/Sent
- 自動化健康檢查腳本:定期查詢
sys.database_mirroring、sys.dm_db_mirroring_connections
- 見證伺服器監控:若部署見證伺服器,同樣註冊監控其連線狀態
- 災難演練:定期測試手動/自動容錯移轉,驗證 RTO/RPO
常見問題排查
| 現象 | 可能原因 | 排查方向 |
| 狀態 SUSPENDED | 鏡像中斷、磁碟滿、網路斷線、錯誤頁面 | 檢查錯誤記錄、磁碟空間、網路、DBCC CHECKDB |
| 未傳送記錄持續增長 | 網路頻寬不足、鏡像端磁碟 I/O 瓶頸、主體負載過高 | 效能監控、壓縮傳輸 (SQL 2008+)、升級頻寬 |
| 未還原記錄增長 | 鏡像端 CPU/記憶體不足、鎖死、長時間交易阻塞 | 鏡像端資源、封鎖鏈分析 |
| 監視器無法連線 | 防火牆、SQL Browser 未啟動、權限不足 | 1433/1434、Browser、sysadmin 權限 |
適用版本
- SQL Server 2005 SP1+ (資料庫鏡像功能)
- SQL Server 2008/2008 R2/2012/2014/2016/2017/2019
- Azure SQL Managed Instance (受控執行個體支援鏡像類似功能)