【发布时间】:2016-12-31 05:42:34
【问题描述】:
我有一个关于尝试在发布者处停止大型事务分发给订阅者的问题。假设有人不小心更新了包含 5000 万条记录的表中的每条记录,然后在意识到他们的错误后,将所有记录都恢复了。在这种情况下,更改将分发给事务复制设置中的两个订阅者。在系统上,它说需要 2 天时间才能复制到订阅者,但是克服这个问题的最佳方法是什么?
我已经看到使用事务的xact_seqno、sp_helpsubscriptionerrors 和sp_setsubscriptionxactseqno 跳过命令是可能的而且实际上非常容易。但是,如果将其用于正在积极分发的事务上会发生什么?有什么需要停止的吗?
如果这不是解决问题的最佳方法,那会是什么?
【问题讨论】:
-
我实际上只是尝试在单独的测试环境设置中执行此操作,纯粹是为了尝试一下。使用
sp_setsubscriptionxactseqno似乎不起作用;交易仍然得到应用。我还尝试从同一xact_seqno上的MSrepl_commands和MSrepl_transactions中删除,但所有更改仍在分发中。很困惑!
标签: sql sql-server sql-server-2008 replication transactional-replication