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

MS SQL 基礎教學:快照複寫架構、同步集合產生與適用場景完整指南

     編輯:關於SqlServer

快照複寫是最簡單的複寫類型,透過定期「拍照」全量資料同步至訂閱者。本文詳細解析:1) 運作原理:快照代理 → 發布表加共享鎖 → 產生同步集合 (.bcp 資料檔、.sch 結構描述、.idx 索引定義) 存放於散發者快照資料夾 → 記錄同步作業 → 散發代理將檔案套用至訂閱者目的表;2) 適用場景:不需即時資料 (決策支援/靜態查詢)、唯讀訂閱者、資料量小/變更頻率低、可更新訂閱修改量極少;3) 優缺點:簡單易管、支援異構訂閱者、但網路頻寬需求大、延遲高、大資料庫鎖定時間長。建議安排在離峰時段執行。

快照代理產生同步集合步驟

  1. 連線發布者,發布文集所有表加共享鎖 (防止修改破壞一致性)。
  2. 對每張表執行 BCP OUT 產生資料檔 (.bcp),結構描述檔 (.sch),索引檔 (.idx)。
  3. 釋放共享鎖,將檔案複製至散發者快照資料夾 (預設 \\Distributor\ReplData\)。
  4. 在散發資料庫 MSsnapshot_history 記錄同步作業狀態。

散發代理套用流程

  1. 讀取散發資料庫同步作業。
  2. 對訂閱者目的表:BCP IN 載入資料、重建索引/約束。
  3. 更新同步狀態。

快照代理加共享鎖步驟

最佳實踐建議

  • 大資料庫使用壓縮快照 (@compress_snapshot = 1) 減少網路傳輸。
  • 快照資料夾放置於高速磁碟陣列,獨立於資料/記錄檔。
  • 訂閱者端預先建立索引/約束 (延遲建立) 加速 BCP IN。
  • 監控快照代理執行時間,超過維護窗口需優化或改用交易複寫。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved