如何为带有参数化筛选器的合并发布管理分区(复制 Transact-SQL 编程)

参数化行筛选器可用于生成不重叠的分区。 可以限制这些分区,以便只有一个订阅接收到给定分区。 在这类情况下,大量订阅服务器将导致大量的分区,从而需要同等数量的分区快照。 有关详细信息,请参阅参数化行筛选器。 为了更好地管理带有参数化筛选器的发布,可使用复制存储过程以编程方式枚举现有的分区。 还可以创建和删除现有的分区。 可以获取以下有关现有分区的信息:

尽管在初始化新订阅时可以按需生成由两部分构成的快照的第二部分,但通过下面的过程可以控制此快照的生成方式,并在最方便的时候预生成该快照。 有关详细信息,请参阅带有参数化筛选器的合并发布的快照

注意注意

当发布具有可生成含不重叠分区的订阅的参数化筛选器时,如果特定的订阅丢失且需要重新创建时,则必须执行以下操作:删除订阅的分区,重新创建订阅,然后重新创建分区。 生成发布创建脚本时,复制会为现有订阅服务器分区生成创建脚本。 有关详细信息,请参阅编写复制脚本

查看有关现有分区的信息

  • 在发布服务器上,对发布数据库执行 sp_helpmergepartition (Transact-SQL)。 为 @publication 指定发布的名称。 (可选)指定 @suser_sname@host_name 以根据单个筛选条件返回信息。

定义新分区并生成新分区快照

  1. 在发布服务器上,对发布数据库执行 sp_addmergepartition (Transact-SQL)。 为 @publication 指定发布的名称,并为以下某个参数指定用于定义分区的参数化值:

  2. 创建并初始化此新分区的参数化快照。 有关详细信息,请参阅如何为带有参数化筛选器的合并发布创建快照(复制 Transact-SQL 编程)

删除分区

  • 在发布服务器上,对发布数据库执行 sp_dropmergepartition (Transact-SQL)。 为 @publication 指定发布的名称,并为以下某个参数指定用于定义分区的参数化值:

    此操作还将删除快照作业以及该分区的任何快照文件。