快照複寫概述
- 特定時間點對發行資料「拍照」,產生靜態同步集合(結構+資料)。
- **不監控資料變更**,每次完整重新整理訂閱端資料。
- 適用:不需即時資料(決策支援、靜態表查詢)、唯讀訂閱者、資料量較小、網路可靠。
- 保證**潛在交易一致性**。
所需代理
- 快照代理:建立同步集合,儲存散發者快照資料夾,追蹤同步作業於散發資料庫。
- 散發代理:將同步集合套用至訂閱者目的表。
快照代理執行步驟
- 連接發行者,所有發行表加**共享鎖**(防止修改),建議離峰執行。

- 連接散發者,複製表結構至 .sch、索引至 .idx。
- 執行 BCP/文字檔快照,資料寫入同步集合(SQL Server 訂閱用 .bcp、異構用 .txt)。
- 向散發資料庫
MSrepl_commands、MSrepl_transactions 插入同步命令與訂閱任務。
- 釋放共享鎖。
散發代理步驟
- 連接散發者(推送在散發者、提取在訂閱者)。
- 檢查散發資料庫系統表,讀取同步集合位置與訂閱任務。
- 套用快照檔案至訂閱者目的表(可選擇刪除重建或清空資料保留結構)。
同步集合組成
每篇發行項(Article)一組:.sch(結構)、.bcp/.txt(資料)、.idx(索引,可選)。
小結
快照複寫架構簡單、易理解,透過共享鎖保證快照一致性。適合資料變動少、容忍延遲、唯讀訂閱場景。大量資料建議改用交易/合併複寫。