SQL Server 2000 提供三種可更新訂閱選項,增加複寫靈活性但也帶來配置複雜度。本文深度解析:1) 立即更新訂閱者:訂閱者修改經兩階段認交 (2PC) 立即反映至發布者,再由散發代理傳播至其他訂閱者(潛在交易一致性),降低全域 2PC 複雜度;2) 佇列更新:訂閱者修改寫入本地佇列,佇列讀取器代理非同步套用至發布者,適合斷線/高延遲環境;3) 以佇列更新為熱備份的立即更新:正常走立即更新,連線失效自動切換佇列更新,提供高可用。並說明衝突偵測(資料列/資料行層級)、解決規則(發布者勝/訂閱者勝/自訂)、sp_repladdcolumn 等系統程序支援。
| 模式 | 同步機制 | 一致性層級 | 適用場景 |
|---|---|---|---|
| 立即更新 | 訂閱者→發布者 2PC 同步 | 發布者強一致,其他訂閱者潛在一致 | 可靠網路、低延遲、需強一致 |
| 佇列更新 | 訂閱者→本地佇列→Q Reader→發布者 | 最終一致 | 斷線作業、高延遲、行動裝置 |
| 佇列熱備份立即更新 | 正常立即更新,失效切換佇列 | 視模式切換 | 高可用需求、網路不穩定 |
選擇正確模式需評估網路可靠性、一致性需求、離線作業比例與管理複雜度承受力。