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

SQL Server 交易複寫特性與代理協作流程完整指南

     編輯:關於SqlServer

交易複寫核心特性

  • 傳輸內容:交易(INSERT/DELETE/UPDATE),非完整資料快照 → 增量複寫,網路流量小。
  • 近即時:變更秒級傳遞至訂閱者,需可靠網路連線。
  • 單向修改:預設僅發行者可修改(啟用立即更新訂閱除外),保證交易一致性(介於立即與潛在一致性間)。
  • 並行快照處理(SQL 2000 新功能):建立快照期間釋放共享鎖,允許並發修改,代價是增加快照負載,建議離峰時段初始化。

三大代理協作流程

  1. 快照代理:建立初始同步集合(結構 .sch、資料 .bcp/.txt、索引 .idx),寫入散發資料庫 MSrepl_commands、MSrepl_transactions。
    交易複寫代理協作流程圖
  2. 記錄讀取代理:掃描發行資料庫交易記錄,擷取標記為複寫的交易寫入散發資料庫。
  3. 散發代理:將散發資料庫交易推送/提取至訂閱者。

快照代理詳細步驟

  1. 連接發行者,發行表加共享鎖(保證一致性)。
  2. 連接散發者,複製表結構至 .sch、索引至 .idx。
  3. 對發行表資料執行 BCP/文字檔快照,寫入同步集合。
  4. 向散發資料庫系統表插入同步命令與交易記錄。
  5. 釋放共享鎖。

散發代理步驟

  1. 連接散發者(推送訂閱在散發者、提取訂閱在訂閱者)。
  2. 讀取 MSrepl_commands、MSrepl_transactions 取得同步集合位置與訂閱任務。
  3. 套用快照檔案至訂閱者目的表。

小結

交易複寫以記錄讀取代理實現低延遲增量同步,並行快照處理平衡初始化封鎖與並發需求。三代理分工明確,構建高可用複寫拓撲核心。

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