同步處理資料

適用於:SQL ServerAzure SQL 受控執行個體

資料同步是指在訂閱者端套用初始快照集之後,資料和結構描述變更在發行者與訂閱者之間傳播的過程。 可以進行同步:

  • 持續進行,這是交易式複寫的典型情況。

  • 依需要進行,這是合併式複寫的典型方式。

  • 依排程進行,這是快照式複寫的典型情況。

當訂閱同步時,會根據您使用的複寫類型執行不同的程序:

  • 快照式複寫。 同步表示散發代理程式會在訂閱者端重新套用快照,使訂閱資料庫中的結構描述和資料與發行資料庫一致。

    如果在「發行者」端對資料或結構描述作了修改,則必須生成新的快照集,以將修改傳播到「訂閱者」端。

  • 交易式複寫。 同步處理意味著「散發代理程式」將更新、插入、刪除和其他更改從散發資料庫傳送到「訂閱者」端。

  • 合併式複寫。 同步處理意味著「合併代理程式」將更改從「訂閱者」端上傳到「發行者」端,然後再將更改從「發行者」端下載到「訂閱者」端。 當有衝突時會進行偵測並解決。 資料會被聚合,最終「發行者」端和所有「訂閱者」端都將得到相同的資料值。 如果偵測到衝突並加以解決,則會變更部分使用者已提交的工作,以依照您定義的原則解決衝突。

每次進行同步處理時,快照發行都會在訂閱者端完整重新整理整個結構描述,因此所有結構描述變更都會套用到訂閱者。 異動複寫與合併式複寫還支援最常見的結構描述變更。 如需詳細資訊,請參閱對發行集資料庫進行結構描述變更

若要同步處理發送訂閱,請參閱< Synchronize a Push Subscription>。

若要同步處理提取訂閱,請參閱< Synchronize a Pull Subscription>。

若要設定同步處理排程,請參閱< Specify Synchronization Schedules>。

檢視並解決同步衝突

在同步處理期間執行程式碼

複寫支援兩種同步處理時的程式碼執行方法

  • 異動複寫和合併式複寫支援隨選執行指令碼。 使用隨選指令碼執行功能,您可以指定在同步期間執行的 SQL 指令碼。 指令碼將複製到「訂閱者」端,並在開始同步處理時使用 sqlcmd 來執行。 指令碼套用至「訂閱者」後,便不具有對已複寫變更的存取權。 如需詳細資訊,請參閱在同步處理期間執行指令碼 (複寫 Transact-SQL 程式設計)

  • 合併式複寫支援商業邏輯處理常式。 您可以使用商務邏輯處理常式架構來撰寫受管理的程式碼組件,該組件將在合併同步處理期間中被呼叫。 該組件包含可在同步期間對多種情況做出回應的業務邏輯:資料變更、衝突和錯誤。 如需詳細資訊,請參閱在合併同步處理期間執行商務邏輯