将合并订阅重新同步到指定的已知验证状态。这使您得以将订阅数据库强制集中或同步到特定的即时点(如上次成功验证的时间)或指定的日期。使用此方法重新同步订阅时,不重新应用快照。此存储过程不用于快照复制订阅和事务复制订阅。此存储过程在发布服务器的发布数据库上或订阅服务器的订阅数据库上执行。
sp_resyncmergesubscription [ [ @publisher = ] 'publisher' ]
[ , [ @publisher_db = ] 'publisher_db' ]
, [ @publication = ] 'publication '
[ , [ @subscriber = ] 'subscriber' ]
[ , [ @subscriber_db = ] 'subscriber_db' ]
[ , [ @resync_type = ] resync_type ]
[ , [ @resync_date_str = ] resync_date_string ]
[@publisher =] 'publisher'
是发布服务器名称。publisher 的数据类型为 sysname,默认设置为 NULL。如果此存储过程运行在发布服务器上,则 NULL 值有效。如果此存储过程运行在订阅服务器上,则必须指定发布服务器。
[@publisher_db =] 'publisher_db'
是发布数据库名。publisher_db 的数据类型为 sysname,默认值为 NULL。如果此存储过程运行在发布服务器的发布数据库上,则 NULL 值有效。如果此存储过程运行在订阅服务器上,则必须指定发布服务器。
[@publication =] 'publication'
是发布名。publication 的数据类型为 sysname,无默认值。
[@subscriber =] 'subscriber'
是订阅服务器名。subscriber 的数据类型为 sysname,默认设置为 NULL。如果此存储过程运行在订阅服务器上,则 NULL 值有效。如果此存储过程运行在发布服务器上,则必须指定订阅服务器。
[@subscriber_db = ] 'subscriber_db'
是订阅数据库名称。subscription_db 的数据类型为 sysname,默认设置为 NULL。如果此存储过程运行在订阅服务器的订阅数据库上,则 NULL 值有效。如果此存储过程运行在发布服务器上,则必须指定订阅服务器。
[@resync_type =] resync_type
定义重新同步的开始时间。resync_type 的数据类型为 int,可以是下列值之一:
值 | 描述 |
---|---|
0 | 同步从初始快照后开始。这是占用资源最多的选项,因为自初始快照后的所有更改都重新应用于订阅服务器。 |
1 | 同步从上次成功验证后开始。所有自上次成功验证后发生的所有新的或未完成的生成都将重新应用于订阅服务器。 |
2 | 同步从 resync_date_str 中给定的日期开始。所有在该日期后发生的新的或未完成的生成都将重新应用于订阅服务器。 |
[@resync_date_str =] resync_date_string
定义重新同步的开始日期。resync_type 的数据类型为 nvarchar(30),默认值为 NULL。当 resync_type 的值为 2 时使用此参数。给定的日期将转换为等价的 datetime 值。
0(成功)或 1(失败)
sp_resyncmergesubscription 用于合并复制。
resync_type 参数的值为 0,表示重新应用自初始快照后发生的所有更改。该值可能需要大量资源,但可能比完全重新初始化占用的资源少得多。例如,如果初始快照是一个月前做的,则该值将重新应用上个月的数据。如果初始快照包含 1 GB 数据,但上个月的更改量包含 2 MB 的更改数据,则重新应用更改的数据比重新应用完整的 1 GB 快照更有效。
只有 sysadmin 固定服务器角色成员或 db_owner 固定数据库角色成员才能执行 sp_resyncmergesubscription。