同步處理資料

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

同步資料是指在「訂閱者」端套用初始快照集後,在「發行者」與「訂閱者」之間傳播資料和結構描述變更的處理。 同步處理將會:

  • 連續發生,一般出現在異動複寫中。

  • 視需要發生,一般出現在合併式複寫中。

  • 在排程時間發生,一般出現在快照式複寫中。

同步處理訂閱時,根據使用的複寫類型將發生不同的處理:

  • 快照式複寫。 同步處理意味著「散發代理程式」在「訂閱者」端重新套用快照集,以使訂閱資料庫中的結構描述和資料與發行集資料庫保持一致。

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

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

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

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

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

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

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

若要檢視並解決同步處理衝突

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

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

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

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

另請參閱

偵測及解決合併式複寫衝突