如何手动初始化订阅(复制 Transact-SQL 编程)

虽然初始快照通常用于初始化订阅,但如果架构和初始数据已经存在于订阅服务器上,则可以在不使用快照的情况下初始化对发布的订阅。

重要说明重要提示

如果在将数据及架构复制到订阅服务器和手动初始化订阅之间的时间段内,在使用事务复制发布的数据库上进行了某活动,则此活动导致的更改可能不会复制到订阅服务器。

可以使用复制存储过程手动初始化订阅。

手动初始化对事务发布的请求订阅

  1. 确保订阅数据库中存在架构和数据。 有关详细信息,请参阅初始化事务订阅(不使用快照)

  2. 在发布服务器上,对发布数据库执行 sp_addsubscription。 指定 @publication@subscriber,为 @destination_db 指定订阅服务器上包含已发布数据的数据库的名称,并将 @subscription_type 的值指定为 pull,将 @sync_type 的值指定为 replication support only。 有关详细信息,请参阅如何创建请求订阅(复制 Transact-SQL 编程)

  3. 在订阅服务器上,执行 sp_addpullsubscription。 有关更新订阅的信息,请参阅如何创建对事务发布的可更新订阅(复制 Transact-SQL 编程)

  4. 在订阅服务器上,执行 sp_addpullsubscription_agent。 有关详细信息,请参阅如何创建请求订阅(复制 Transact-SQL 编程)

  5. 启动分发代理以传输复制对象,并从发布服务器下载最新更改。 有关详细信息,请参阅如何同步请求订阅(复制编程)

手动初始化对事务发布的推送订阅

  1. 确保订阅数据库中存在架构和数据。 有关详细信息,请参阅初始化事务订阅(不使用快照)

  2. 在发布服务器上,对发布数据库执行 sp_addsubscription。 为 @destination_db 指定订阅服务器上包含已发布数据的数据库的名称,并将 @subscription_type 的值指定为 push,将 @sync_type 的值指定为 replication support only。 有关更新订阅的信息,请参阅如何创建对事务发布的可更新订阅(复制 Transact-SQL 编程)

  3. 在发布服务器上,对发布数据库执行 sp_addpushsubscription_agent。 有关详细信息,请参阅如何创建推送订阅(复制 Transact-SQL 编程)

  4. 启动分发代理以传输复制对象,并从发布服务器下载最新更改。 有关详细信息,请参阅如何同步推送订阅(复制编程)

手动初始化对合并发布的请求订阅

  1. 确保订阅数据库中存在架构和数据。 通过在订阅服务器上还原发布数据库的备份,即可完成此操作。 有关详细信息,请参阅初始化合并订阅(不使用快照)

  2. 在发布服务器中,执行 sp_addmergesubscription。 指定 @publication@subscriber@subscriber_db,并将 @subscription_type 的值指定为 pull。 这样便可注册请求订阅。

  3. 在订阅服务器上,对包含已发布数据的数据库执行 sp_addmergepullsubscription。 将 @sync_type 的值指定为 none

  4. 在订阅服务器上,指定 sp_addmergepullsubscription_agent。 有关详细信息,请参阅如何创建请求订阅(复制 Transact-SQL 编程)

  5. 启动合并代理以传输复制对象,并从发布服务器下载最新更改。 有关详细信息,请参阅如何同步请求订阅(复制编程)

手动初始化对合并发布的推送订阅

  1. 确保订阅数据库中存在架构和数据。 通过在订阅服务器上还原发布数据库的备份,即可完成此操作。 有关详细信息,请参阅初始化合并订阅(不使用快照)

  2. 在发布服务器上,对发布数据库执行 sp_addmergesubscription。 为 @subscriber_db 指定订阅服务器上包含已发布数据的数据库的名称,并将 @subscription_type 的值指定为 push,将 @sync_type 的值指定为 none

  3. 在发布服务器上,对发布数据库执行 sp_addmergepushsubscription_agent。 有关详细信息,请参阅如何创建推送订阅(复制 Transact-SQL 编程)

  4. 启动合并代理以传输复制对象,并从发布服务器下载最新更改。 有关详细信息,请参阅如何同步推送订阅(复制编程)