1

SQL Server 2008R2 事务复制 - 移动订阅者数据库 - 推送订阅

我需要在系统中断之外将订阅者数据库移动到新服务器,即我无法阻止新事务加载到发布者数据库中。

到目前为止,我已经尝试停止分发代理并让所有未复制的命令复制到 Server1 上的订阅者数据库。然后将订阅者数据库备份并恢复到 Server2。然后,我创建了一个从 Server2 到现有出版物的新订阅。

这可行,但只有从该点开始创建的事务才会复制到 Server2 订阅者数据库。我还需要在分销商数据库中建立的所有旧交易,这些交易注定只能转到 Server1。

是否有复制命令可用于将分发器中现有事务的目标更新为新的subscriber.subscriber_DB?

有 1 个包含多篇文章的出版物。该发布目前仅由 Server1 上的一个数据库订阅。

4

2 回答 2

2

你工作太辛苦了。在新服务器上创建订阅,就像您根本没有现有订阅一样。有很多方法可以做到这一点;选择你最喜欢的。我在您对另一个答案的回复中看到快照是不可行的。我使用“从备份初始化”选项取得了很大的成功(这里,“备份”是指发布者的备份)。一旦订阅者在初始化后同步,您就完成了。您现在可以清楚地“迁移”到新服务器。

于 2012-05-29T19:22:41.193 回答
0

由于分发代理特定于每个订阅服务器,因此您实际上无法让新订阅者接管现有订阅者停止的位置。唯一可行的方法是备份/恢复到 Server2,暂时停止发布者上的事务,将日志备份/恢复到 Server2,创建“仅支持复制”的订阅,然后重新启用事务。

你不能只为新订阅者添加对同一发布的订阅并启动快照代理吗?这将独立同步 Server2 而 Server1 继续保持同步。然后,您应该能够无缝切换到 Server2 并删除对 Server1 的订阅。

不过有一点警告。我会检查发布数据库的 syspublications 表(或运行 sp_helppublications)中的 sync_method,以确保快照不会锁定发布者中的表(默认情况下,对于 SQL Server 2005+,这应该不是问题)。否则,我刚才的建议将导致发布者阻塞,直到快照完成。

此外,如果您使用默认设置通过 GUI 设置复制,这是了解如何一次创建一个快照的一个很好的参考。如果您有大量数据要复制(千兆字节而不是兆字节),这对于在较长时间内分发快照以减少发布服务器负载很有用。 http://www.replicationanswers.com/TransactionalOptimisation.asp

于 2012-05-29T17:33:45.320 回答