不使用快照集初始化合併訂閱

[!附註]

未來的 Microsoft SQL Server 版本將移除這項功能。請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。

依預設,會使用快照集來初始化合併式發行集的訂閱,此快照集由「快照集代理程式」產生並由「合併代理程式」套用。在某些狀況下,可以使用其他方法 (如備份) 初始化訂閱。對於未篩選和已篩選發行集,合併式複寫都支援不使用快照集的訂閱初始化。此選項更常用於未篩選的發行集以及使用靜態篩選的發行集。對於「訂閱者」資料分割,使用參數化篩選的發行集通常使用快照集來初始化。如需詳細資訊,請參閱<含參數化篩選之合併式發行集的快照集>。

盡可能使用快照集初始化訂閱。建議您不要在沒有快照集的情況下初始化訂閱,特別是在下列情況下:

  • 當使用資料行層級追蹤、垂直篩選,或是在發行者端進行結構描述變更時。在這個情況下不使用快照集初始化訂閱時,會產生非聚合的情況。

  • 當使用 Web 同步處理時,快照集檔案會複寫到訂閱者,但不會加以使用。

  • 當您必須重新初始化訂閱時。

  • 當您必須使用預先計算的資料分割來提供效能優勢時。

若要從備份或使用其他方法初始化合併訂閱,請執行下列步驟:

  1. 將包含 rowguid 與非 Null 資料行屬性的 uniqueidentifier 資料行加入到將用於合併式複寫的資料表中。

  2. 執行您將用於初始化訂閱者的資料庫備份。

  3. 建立發行集並產生該發行集的快照集。雖然將不會使用快照集中已發行資料表的結構描述和資料,但仍需要快照集,因為它包括複寫所需的系統物件和中繼資料。這些物件和中繼資料將在初始同步期間被複製到「訂閱者」。

  4. 在「訂閱者」端還原備份或使用其他方法複製資料。如果還原備份,請勿指定 KEEP_REPLICATION 選項。設計此選項的目的是在還原過程中維護複寫設定;備份來自「發行者」,所以需要從資料庫中移除「發行者」設定。還原的資料庫在初始同步之後會取得必要的「訂閱者」設定。

  5. 建立一個訂閱,指定該訂閱要手動初始化。

    [!附註]

    如果訂閱未使用快照集進行初始化,在「發行者」端執行 SQL Server 服務的帳戶必須在「散發者」端具有快照集資料夾的寫入權限。如需有關權限的詳細資訊,請參閱<複寫代理程式安全性模型>。

    如需詳細資訊,請參閱:

  6. 使用「合併代理程式」執行初始同步,以複製複寫所需的物件和中繼資料。現在「訂閱者」已同步處理,已準備好接受來自「發行者」的累加變更。