共用方式為


複寫如何運作

Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 合併式複寫是依照下列程序進行:

  1. 在 SQL Server 上發行資料。
  2. 建立發行集的訂閱。
  3. 更新訂閱者上的資料。
  4. 同步處理資料。

下表定義本節中所使用的一些辭彙。

辭彙 定義

發行項

啟用於複寫的資料庫資料表。

發行集

發行項的集合。

分割

發行集中的特定資料列集或資料行集。

發行者

使發行集可透過複寫使用的資料庫。

訂閱者

接收複寫資料且可將資料變更傳送回發行者的資料庫。

訂閱

將發行集複本傳遞給訂閱者的要求。

訂閱資料庫

此資料庫用於接收發行者所發行的發行項。

發行資料

發行集指定要發行什麼資料。發行集通常會針對不同使用者或使用者群組來自訂。有時候,所有使用者都需要相同資料。例如,每位員工可能都需要一份公司員工目錄。在其他情況下,不同的使用者群組可能需要不同的資料分割。例如,業務代表可能需要某一組資料集,而客戶支援技術人員可能需要另一組不同的資料集。個別員工還可能需要特別為其所篩選的資料。例如,業務代表可能只需要自己的客戶帳戶資料。

建立發行集時,您可指定其中所含的發行項。雖然 SQL Server 發行集可能包含其他資料庫物件,例如預存程序、檢視及使用者自訂函數,但是 SQL Server Compact Edition 複寫會忽略這些物件,只將資料表包含在 SQL Server Compact Edition 訂閱中。您可透過篩選來指定要包含在發行項中的資料列及資料行。如需詳細資訊,請參閱《SQL Server 線上叢書》的<複寫>。

訂閱發行集

在您定義發行集之後,應用程式可透過在裝置上以程式設計的方式呼叫由 SQL Server Compact Edition Replication 物件或 SqlCeReplication 類別所顯示的方法來訂閱,或是透過使用 SQL Server Management Studio 中的「新增訂閱精靈」來訂閱。建立訂閱之後,來自散發者的初始快照集會套用至訂閱者上的訂閱資料庫。

更新訂閱者的資料

您的應用程式可更新訂閱資料庫。合併式複寫允許自發地更新每個訂閱資料庫。無論裝置是否連接到網路都可能發生更新。每個 SQL Server Compact Edition 資料庫使用變更追蹤來追蹤在 SQL Server Compact Edition 訂閱者上所執行的 INSERT、UPDATE 及 DELETE 陳述式。資料列層級追蹤與資料行層級追蹤都可供使用。

重要 只有在與 SQL Server 2005 發行者同步處理時才支援資料行層級追蹤。當您使用 SQL Server 2000 複寫時,僅支援資料列層級追蹤。

同步處理資料

一般來說,使用者會間斷地將裝置連接到網路。這些連接允許應用程式將訂閱者上所做的變更與發行者上的變更同步處理。應用程式會藉由呼叫 Replication 物件或 SqlCeReplication 類別所顯示的同步處理方法來初始化同步處理。同步處理程序共包含四個步驟。

  1. 擷取變更並建立輸入訊息檔案。
    SQL Server Compact Edition 用戶端代理程式會從 SQL Server Compact Edition 訂閱者上的訂閱資料庫擷取所有已插入、已更新及已刪除的記錄,然後將這些記錄透過 HTTP 傳播到 SQL Server Compact Edition 伺服器代理程式。SQL Server Compact Edition 伺服器代理程式會建立新的輸入訊息檔案,並將 SQL Server Compact Edition 用戶端代理程式所傳送來的插入、更新及刪除變更寫入該檔案。

  2. 執行 SQL Server Reconciler 程序,並將變更套用至發行集資料庫。
    所有要求均已寫入輸入訊息檔案後,SQL Server Compact Edition 伺服器代理程式便會初始化 SQL Server Reconciler。接著 SQL Server Reconciler 載入 SQL Server Compact Edition 複寫提供者,由該程式讀取輸入訊息檔案並通知 SQL Server Reconciler 有關對 SQL Server Compact Edition 訂閱資料庫所做的變更,這些變更必須套用至發行者的發行集資料庫。在處理期間,SQL Server Reconciler 會偵測並解決衝突。當一個以上的訂閱者或發行者更新同一筆記錄時,便會發生衝突。
    注意 SQL Server Reconciler 使用衝突解析程式來解決衝突。您可使用 SQL Server 所提供的衝突解析程式,為 SQL Server Compact Edition 複寫應用程式實作簡單的衝突解決方式,或者您可撰寫自訂的衝突解析程式,以實作更複雜的解決方式。如需詳細資訊,請參閱<複寫衝突偵測與解決>。

  3. 建立輸出訊息檔案。
    SQL Server Reconciler 會通知 SQL Server Compact Edition 複寫提供者有關在發行者上所做的變更,這些變更必須套用至裝置上的訂閱資料庫。SQL Server Compact Edition 複寫提供者會在執行 IIS 的伺服器上將這些變更寫入輸出訊息檔案。

  4. 讀取輸出訊息檔案並將變更套用至 SQL Server Compact Edition 訂閱資料庫。
    當 SQL Server Reconciler 程序完成時,SQL Server Compact Edition 伺服器代理程式會找出由 SQL Server Compact Edition 複寫提供者所建立的輸出訊息檔案。這個檔案包含在發行者上所發生的變更,且這些變更必須套用至裝置上的訂閱資料庫。SQL Server Compact Edition 伺服器代理程式會閱讀輸出訊息檔案,並將其傳輸至裝置上的 SQL Server Compact Edition 用戶端代理程式。SQL Server Compact Edition 用戶端代理程式會將輸出訊息檔案中的變更套用至 SQL Server Compact Edition 訂閱資料庫。
    注意 當 SQL Server Compact Edition 用戶端代理程式從裝置上的訂閱資料庫讀取或套用變更至該訂閱資料庫時,它會以邏輯區塊的方式處理輸入訊息檔案及輸出訊息檔案。藉由以這種方式來處理每個訊息檔案,SQL Server Compact Edition 用戶端代理程式可避免將整個訊息檔案寫入裝置,以節省裝置上的儲存空間。

當 SQL Server Compact Edition 用戶端代理程式已將所有變更併入裝置上的訂閱資料庫,並解決任何衝突後,發行集資料庫與訂閱資料庫便已同步處理且資料也已統合。不過,由於更新會不斷發生,因此發行者和訂閱者上的資料值可能不相同。

重要事項:
您不能在相同資料庫上同時啟動兩個合併式複寫處理序。

請參閱

說明及資訊

取得 SQL Server Compact Edition 協助