静止复制拓扑(复制 Transact-SQL 编程)

静默系统涉及在所有节点上停止已发布表的活动,并确保每个节点已接收到来自所有其他节点的所有更改。 本主题介绍如何静止复制拓扑,这是许多管理任务所必需的,以及如何确保节点已收到来自其他节点的所有更改。

使事务复制拓扑在只读订阅中进入静止状态

  1. 停止发布服务器上的所有已发布表上的活动。

  2. 在发布服务器上,对发布数据库执行sp_posttracertoken(Transact-SQL)。

  3. 在发布服务器上,对发布数据库执行 sp_helptracertokenhistory

  4. 确保每个订阅者都已收到跟踪令牌。

使用可更新订阅使事务复制架构静默

  1. 停止发布服务器和所有订阅服务器上的所有已发布表上的活动。

  2. 如果任何订阅者使用排队更新机制的订阅:

    1. 如果队列读取器代理未在连续模式下运行,请运行代理。 有关运行代理的详细信息,请参阅复制代理可执行文件概念启动和停止复制代理(SQL Server Management Studio)。

    2. 若要验证队列是否为空,请在每个订阅服务器上执行 sp_replqueuemonitor

  3. 在发布者的发布数据库中执行 sp_posttracertoken

  4. 在发布服务器上,对发布数据库执行 sp_helptracertokenhistory

  5. 确保每个订阅者都已收到跟踪令牌。

暂停对等事务复制拓扑

  1. 在所有节点上停止所有已发布表上的操作。

  2. 对拓扑中的每个发布数据库执行 sp_requestpeerresponse

  3. 如果日志读取器代理或分发代理未在连续模式下运行,请运行代理。 必须在分发代理之前启动日志读取器代理。 有关运行代理的详细信息,请参阅复制代理可执行文件概念启动和停止复制代理(SQL Server Management Studio)。

  4. 对拓扑中的每个发布数据库执行 sp_helppeerresponses 。 确保结果集包含来自其他每个节点的响应。

确保点对点节点已接收到所有先前的更改

  1. 在正在检查的节点上的发布数据库上执行 sp_requestpeerresponse

  2. 如果日志读取器代理或分发代理未在连续模式下运行,请运行代理。 必须在分发代理之前启动日志读取器代理。 有关运行代理的详细信息,请参阅复制代理可执行文件概念启动和停止复制代理(SQL Server Management Studio)。

  3. 在要检查的节点上的发布数据库上执行 sp_helppeerresponses 。 确保结果集包含来自其他每个节点的响应。

静止合并复制拓扑

  1. 停止发布服务器和所有订阅服务器上的所有已发布表上的活动。

  2. 为每个订阅运行两次合并代理:同步所有订阅一次,然后再次同步每个订阅。 这可确保将所有更改复制到所有节点。 有关运行代理的详细信息,请参阅复制代理可执行文件概念启动和停止复制代理(SQL Server Management Studio)。

    注释

    如果在同步期间发生冲突,则冲突解决所需的更改可能在运行合并代理两次后不会传播到所有节点。

另请参阅

管理对等拓扑(复制 Transact-SQL 编程)
为事务复制测量滞后时间和验证连接