在可更新的事务性订阅中切换更新模式

本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2014 中切换可更新事务订阅的更新模式。 使用“新建订阅向导”指定可更新订阅的模式。 有关使用此向导时设置模式的信息,请参阅 “查看和修改请求订阅属性”。

在您开始之前

局限性与限制

  • 您可以随时将更新模式从即时切换到排队。 然而,你需要连接订阅服务器和发布服务器,并确保队列读取器代理已将队列中的所有挂起消息应用到发布服务器之后,才能返回至即时更新。

建议

  • 当对事务发布的更新订阅支持从一种更新模式故障转移到另一种更新模式时,你可以以编程方式切换更新模式来处理连接更改时间较短的情况。 可以使用复制存储过程以编程方式按需设置更新模式。 有关详细信息,请参阅 事务复制的可更新订阅

使用 SQL Server Management Studio

注释

若要在创建订阅后更改更新模式, 必须将update_mode 属性设置为 故障转移 (这允许从立即更新切换到排队更新)或 排队故障转移 (允许在创建订阅时从排队更新切换到立即更新)。 这些属性在“新建订阅向导”中自动设置。

设置推送订阅的更新模式

  1. 在 SQL Server Management Studio 中连接到订阅服务器,然后展开服务器节点。

  2. 展开 “复制 ”文件夹,然后展开 “本地订阅 ”文件夹。

  3. 右键单击要为其设置更新模式的订阅,然后单击“ 设置更新方法”。

  4. “设置更新方法 - <订阅服务器>: <SubscriptionDatabase> ”对话框中,选择 “立即更新 ”或“ 排队更新”。

  5. 单击 “确定”

设置拉取订阅的更新模式

  1. “订阅属性 - <发布服务器>: <PublicationDatabase>”对话框中,为订阅服务器更新方法选项选择“立即复制更改”或“队列更改”的值。

  2. 单击 “确定”

有关访问 订阅属性 - <发布服务器>: <PublicationDatabase> 对话框的详细信息,请参阅 “查看和修改请求订阅属性”。

使用 Transact-SQL

在更新模式之间切换

  1. 通过执行 sp_helppullsubscription 对拉式订阅或 sp_helpsubscription 对推式订阅进行验证,以确保订阅是否支持故障转移。 如果结果集中更新模式的值为34,则支持故障转移。

  2. 在订阅数据库的订阅服务器上,执行 sp_setreplfailovermode。 为@failover_mode指定@publisher@publisher_db@publication和以下值之一:

    • queued - 在连接暂时丢失时切换到排队更新。

    • immediate - 在还原连接后故障转移到立即更新。

另请参阅

可更新的事务复制订阅