首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 複寫核心概念:發布、訂閱、代理程式與三大複寫類型詳解

     編輯:關於SqlServer

SQL Server 複寫技術由三大角色、兩種傳遞模式、三種複寫類型構成,是實現資料分發、異地備份、報表卸載的經典方案。

核心角色

  • 發布者:維護源資料庫,偵測變更發送至散發者。
  • 散發者:含散發資料庫,儲存中繼資料、歷史與交易;對快照/交易複寫關鍵,合併複寫角色較輕。
  • 訂閱者:持有資料副本,接收變更;視選項可允許更新回寫。

傳遞模式

  • 推模式:散發代理在散發者端執行,主動推送。
  • 拉模式:散發代理在訂閱者端執行,主動拉取;減輕散發者壓力,適合大量訂閱者。

複寫類型

  1. 快照複寫:定期產生完整資料快照(含結構)傳給訂閱者。適合資料量小、變更頻率低、允許較高延遲場景。是交易複寫的初始化基礎。
  2. 交易複寫:
    ① 快照初始化訂閱庫;
    ② 發布端寫入交易記錄;
    ③ 記錄讀取代理讀取記錄存入散發庫;
    ④ 散發代理推送至訂閱端。
    低延遲、高一致性,適合 OLTP 異地同步。
  3. 合併複寫:允許發布端與多訂閱端獨立更新,合併代理解決衝突(優先順序、自定義解決器)。適合行動離線、分支機構雙向同步。

關鍵物件

  • 發行集:一組邏輯相關的發行項(表、檢視、預存程序、UDF 的全部或篩選後資料)。訂閱以發行集為單位。
  • 發行項:發行集的最小單元,可垂直/水平篩選。

五大代理程式

  • 快照代理、記錄讀取代理、散發代理、合併代理、佇列讀取代理(支援佇列更新訂閱)。

選型建議: 單向同步、低延遲 → 交易複寫;雙向/離線 → 合併複寫;定期全量刷新 → 快照複寫。生產環境務必監控代理狀態、延遲指標與衝突解決記錄。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved