適用於:SQL Server
Azure SQL 受控執行個體
本文描述如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中手動初始化訂閱。 雖然初始快照通常用於初始化訂閱,但對發行集的訂閱也可以在不使用快照的情況下進行初始化,前提是訂閱者端已具有結構描述和初始資料。
限制事項
- 如果在將資料和結構描述複製到訂閱者之後、手動初始化訂閱之前,使用異動複寫發佈的資料庫上有活動,則此活動所導致的變更可能不會複寫到訂閱者。
使用 SQL Server Management Studio
透過將結構描述 (通常是資料) 複製到訂閱資料庫的方式,手動初始化發行集的訂閱。 結構描述和資料應與發行集資料庫相符。 然後在「新增訂閱精靈」的 [初始化訂閱] 頁面中指定訂閱不需要結構描述和資料。 如需有關存取此精靈的詳細資訊,請參閱 不使用快照集初始化交易式訂閱 和 建立提取訂閱。
您初次同步處理訂閱時,會將複寫所需的物件和中繼資料複製到訂閱資料庫。
若要手動初始化發行集的訂閱
確定將結構描述和資料複製到訂閱資料庫。
清除「新增訂閱精靈」 [初始化訂閱] 頁面中的 [初始化] 核取方塊。 對於每個只需要複製複寫物件和中繼資料的訂閱,請執行此操作。
使用 TRANSACT-SQL
可以使用複寫預存程序來手動初始化訂閱。
手動將交易式發行的提取式訂閱初始化
確定訂閱資料庫上有結構描述和資料存在。 如需更多資訊,請參閱 不使用快照集初始化交易式訂閱。
在發行集資料庫的「發行者」上,執行 sp_addsubscription。 指定 @publication、@subscriber、訂閱者上包含已發佈資料之資料庫的名稱作為 @destination_db,並將 @subscription_type 指定為 pull,將 @sync_type 指定為 replication support only。 如需詳細資訊,請參閱 建立提取訂閱。
在訂閱者端,執行 sp_addpullsubscription。 如需更新訂閱,請參閱< Create an Updatable Subscription to a Transactional Publication>。
在訂閱者端執行 sp_addpullsubscription_agent。 如需詳細資訊,請參閱 建立提取訂閱。
啟動散發代理程式,以傳送複寫物件以及從發行者下載最新的變更。 如需相關資訊,請參閱 Synchronize a Pull Subscription。
手動初始化交易式發行的推送訂閱
確定訂閱資料庫上有結構描述和資料存在。 如需詳細資訊,請參閱 不使用快照初始化交易式訂閱。
在發行資料庫的 Publisher 上,執行 sp_addsubscription。 指定訂閱者上包含已發佈資料之資料庫的名稱作為 @destination_db、將 @subscription_type 的值指定為 push,並將 @sync_type 的值指定為 replication support only。 如需建立更新式訂閱,請參閱 建立交易式發行集的可更新訂閱。
在發行集資料庫的「發行者」上,執行 sp_addpushsubscription_agent。 如需詳細資訊,請參閱 建立發送訂閱。
啟動散發代理程式,以傳送複寫物件以及從發行者下載最新的變更。 如需詳細資訊,請參閱 同步處理發送訂閱。
手動初始化合併發行集的提取式訂閱
確定訂閱資料庫上有結構描述和資料存在。 這可透過在訂閱者端還原發行資料庫的備份來完成。
在發行者端執行 sp_addmergesubscription。 指定 @publication、 @subscriber、 @subscriber_db,並將 @subscription_type 的值指定為 pull。 這會註冊提取式訂閱。
在包含已發佈資料的資料庫所在的訂閱端上,執行 sp_addmergepullsubscription。 針對 @sync_type 指定 none的值。
在訂閱者上,執行 sp_addmergepullsubscription_agent。 如需詳細資訊,請參閱 建立提取訂閱。
啟動合併代理程式,以傳送複寫物件以及從發行者下載最新的變更。 如需相關資訊,請參閱 Synchronize a Pull Subscription。
手動初始化合併發行集的推送訂閱
確定訂閱資料庫上有結構描述和資料存在。 這可透過在訂閱者端還原發行資料庫的備份來完成。
在發行集資料庫的發行者上,執行 sp_addmergesubscription。 針對 @subscriber_db指定在訂閱者上包含已發行資料的資料庫名稱、針對 @subscription_type 指定 push的值及針對 @sync_type 指定 none的值。
在發佈資料庫的發行者端,執行 sp_addmergepushsubscription_agent。 如需詳細資訊,請參閱 建立發送訂閱。
啟動合併代理程式,以傳送複寫物件以及從發行者下載最新的變更。 如需詳細資訊,請參閱 同步處理發送訂閱。