交易複寫核心特性
- 傳輸內容:交易(INSERT/DELETE/UPDATE),非完整資料快照 → 增量複寫,網路流量小。
- 近即時:變更秒級傳遞至訂閱者,需可靠網路連線。
- 單向修改:預設僅發行者可修改(啟用立即更新訂閱除外),保證交易一致性(介於立即與潛在一致性間)。
- 並行快照處理(SQL 2000 新功能):建立快照期間釋放共享鎖,允許並發修改,代價是增加快照負載,建議離峰時段初始化。
三大代理協作流程
- 快照代理:建立初始同步集合(結構 .sch、資料 .bcp/.txt、索引 .idx),寫入散發資料庫
MSrepl_commands、MSrepl_transactions。

- 記錄讀取代理:掃描發行資料庫交易記錄,擷取標記為複寫的交易寫入散發資料庫。
- 散發代理:將散發資料庫交易推送/提取至訂閱者。
快照代理詳細步驟
- 連接發行者,發行表加共享鎖(保證一致性)。
- 連接散發者,複製表結構至 .sch、索引至 .idx。
- 對發行表資料執行 BCP/文字檔快照,寫入同步集合。
- 向散發資料庫系統表插入同步命令與交易記錄。
- 釋放共享鎖。
散發代理步驟
- 連接散發者(推送訂閱在散發者、提取訂閱在訂閱者)。
- 讀取
MSrepl_commands、MSrepl_transactions 取得同步集合位置與訂閱任務。
- 套用快照檔案至訂閱者目的表。
小結
交易複寫以記錄讀取代理實現低延遲增量同步,並行快照處理平衡初始化封鎖與並發需求。三代理分工明確,構建高可用複寫拓撲核心。