SQL Server 複寫以「發行者-散發者-訂閱者」模型,支援三大類型滿足不同同步需求。本文解析架構角色、三類型特性、選型決策樹與拓撲建議。
| 角色 | 職責 |
|---|---|
| 發行者 | 資料來源,定義發行集合 (文章),偵測變更 (交易複寫用記錄讀取器)。 |
| 散發者 | 儲存散發資料庫,暫存交易命令/快照檔案,歷史中繼資料。 |
| 訂閱者 | 接收資料,可為推送 (發行者主動) 或提取 (訂閱者主動) 訂閱。 |
| 文章 | 複寫單位:完整表、垂直分割 (欄位)、水平分割 (列)、預存程序執行、檢視、索引檢視、UDF。 |
| 特性 | 快照複寫 | 交易複寫 | 合併複寫 |
|---|---|---|---|
| 同步模式 | 定時全量覆蓋 | 近即時增量 (記錄讀取器) | 離線/間歇性雙向同步 |
| 延遲 | 分鐘~小時 (視資料量) | 秒級 (典型 < 5s) | 依同步排程 (可衝突解決) |
| 網路需求 | 低 (可離線產生快照) | 高 (持續連線、低延遲) | 中 (可暫存離線變更) |
| 雙向寫入 | 不支援 | 可更新訂閱 (複雜、罕用) | 原生支援 (衝突解決器) |
| 適用場景 | 報表/資料倉庫定時刷新、小型參考表 | OLTP 高可用讀取擴展、異構同步、即時 BI | 行動/離線應用、多站點雙向、分支機構同步 |
| 衝突處理 | 無 | 無 (單向) | 優先級/自訂解決器/交互式 |
| DDL 變更傳播 | 支援 (2005+) | 支援 (2005+) | 支援 (2005+) |
複寫非銀彈,但對「讀取擴展、異構同步、離線雙向」極具價值。明確業務需求 (延遲、雙向、網路、衝突) 選對類型,配合集中式散發者與關鍵指標監控,可穩定運行多年。