兩台伺服器 A、B 互為發行者與訂閱者,形成雙向資料流。
| 類型 | 運作機制 | 適用場景 | 缺陷與風險 |
|---|---|---|---|
| 快照複寫 | 定期將發行端完整資料覆蓋訂閱端(先刪後插) | 資料量小、變動極低、需定期全量重置的參考資料 | 高延遲、頻寬消耗大、不支援增量、易造成「踢皮球」循環 |
| 交易複寫 | 以交易為單位,依序將 INSERT/UPDATE/DELETE 透過三個系統預存程序套用至訂閱端 | 高頻 OLTP 異動同步、報表伺服器近即時更新 | 雙向相同篩選條件易產生無限循環複寫(A→B→A...) |
| 合併複寫 | 初始快照後,雙端獨立異動,同步時合併衝突解決(依優先級/自定邏輯) | 行動/離線用戶、多站點獨立寫入、需衝突解決機制 | 需額外蹤跡欄位(rowguid、generation),結構變更複雜、效能開銷大 |
rowguid、generation 等隱藏欄位,開發時勿以 SELECT * 直接對應實體類別。