sp_resyncmergesubscription (Transact-SQL)
适用于:SQL Server
将合并订阅重新同步到指定的已知验证状态。 可以强制收敛或将订阅数据库同步到特定时间点,例如上次成功验证的时间点或指定日期。 使用此方法重新同步订阅时,不会重新应用快照。 此存储过程不用于快照复制订阅或事务复制订阅。 此存储过程在发布服务器的发布数据库中或订阅服务器的订阅数据库中执行。
语法
sp_resyncmergesubscription
[ [ @publisher = ] N'publisher' ]
[ , [ @publisher_db = ] N'publisher_db' ]
, [ @publication = ] N'publication'
[ , [ @subscriber = ] N'subscriber' ]
[ , [ @subscriber_db = ] N'subscriber_db' ]
, [ @resync_type = ] resync_type
[ , [ @resync_date_str = ] N'resync_date_str' ]
[ ; ]
参数
[ @publisher = ] N'publisher'
发布服务器的名称。 @publisher为 sysname,默认值为 NULL
. 如果在发布服务器上运行存储过程,则值为 NULL
有效的值。 如果在订阅服务器上运行该存储过程,则必须指定发布服务器。
[ @publisher_db = ] N'publisher_db'
发布数据库的名称。 @publisher_db为 sysname,默认值为 NULL
. 如果在发布数据库中的发布服务器上运行存储过程,则值为 NULL
有效。 如果在订阅服务器上运行该存储过程,则必须指定发布服务器。
[ @publication = ] N'publication'
发布的名称。 @publication 为 sysname,无默认值。
[ @subscriber = ] N'subscriber'
订阅服务器的名称。 @subscriber为 sysname,默认值为 NULL
. 如果存储过程在订阅服务器上运行,则值为 NULL
有效的。 如果在发布服务器上运行该存储过程,则必须指定订阅服务器。
[ @subscriber_db = ] N'subscriber_db'
订阅数据库的名称。 @subscriber_db为 sysname,默认值为 NULL
. 如果存储过程在订阅数据库中的订阅服务器上运行,则值为 NULL
有效。 如果在发布服务器上运行该存储过程,则必须指定订阅服务器。
[ @resync_type = ] resync_type
定义何时应启动重新同步。 @resync_type 为 int,可以是以下值之一。
值 | 说明 |
---|---|
0 |
同步从初始快照后开始。 此选项是资源密集型最高的,因为自初始快照重新应用到订阅服务器以来的所有更改。 |
1 |
同步从上次成功验证后开始。 自上次成功验证后发生的所有新的或未完成的生成都重新应用于订阅服务器。 |
2 |
同步从resync_date_str给定的日期开始。 该日期后发生的所有新的或未完成的生成都重新应用于订阅服务器。 |
[ @resync_date_str = ] N'resync_date_str'
定义重新同步的开始日期。 @resync_date_str为 nvarchar(30),默认值为 NULL
. 当@resync_type为值2
时,将使用此参数。 给定的日期转换为其等效 的日期/时间 值。
返回代码值
0
(成功)或 1
(失败)。
注解
sp_resyncmergesubscription
用于合并复制。
对于自初始快照以来重新应用所有更改的 @resync_type 参数的值0
可能是资源密集型的,但可能比完全重新初始化要少得多。 例如,如果初始快照在一个月前传递,则该值将使得重新应用上个月的数据。 如果初始快照包含 1 GB 的数据,但过去一个月的更改数由 2 MB(MB) 的已更改数据组成,则重新应用数据比重新应用完整的 1 GB 快照更有效。
权限
只有 sysadmin 固定服务器角色的成员或db_owner固定数据库角色的成员才能执行sp_resyncmergesubscription
。