SQL Server 2008R2事务复制 - 移动SubscriberDB - 推送订阅
我需要将订户数据库移动到系统中断之外的新服务器,即我无法阻止新事务加载到发布者数据库中。
到目前为止,我已尝试停止分发代理,并让所有未复制的命令复制到Server1上的订阅者数据库。然后备份并将订户数据库还原到Server2。然后我创建了从Server2到现有出版物的新订阅。
这样可行,但只有从该点开始创建的事务才会复制到Server2订户数据库。我还要求在分发服务器数据库中建立的所有旧事务都只发送到Server1。
是否有可用的复制命令将分发服务器上现有事务的目标更新为新的subscriber.subscriber_DB?
有1篇出版物有多篇文章。该发布目前仅由Server1上的一个数据库订阅。
答案 0 :(得分:2)
你工作太辛苦了。在新服务器上创建订阅,就好像您根本没有现有订阅一样。有很多方法可以做到这一点;选择你最喜欢的。我在你对另一个答案的回答中看到,快照是不行的。我使用"从备份初始化"取得了很大的成功。选项(此处,"备份"指代发布者的备份)。一旦订阅者在初始化后同步,您就完成了。您现在已经清楚“移植”"到新服务器。
答案 1 :(得分:0)
由于分发代理特定于每个订阅服务器,因此您无法真正让新订户接管现有订户停止的位置。唯一可行的方法是备份/恢复到Server2,暂时停止发布者的事务,备份/恢复日志到Server2,创建只有“仅支持复制”的订阅,然后重新启用事务。
您是否可以只为新订阅者添加订阅同一发布并启动快照代理?这将独立同步Server2,而Server1继续保持同步。然后,您应该能够无缝切换到Server2并删除对Server1的订阅。
虽然有一点警告。我会检查发布数据库的syspublications表(或运行sp_helppublications)中的sync_method,以确保快照不会锁定发布者中的表(默认情况下使用SQL Server 2005+,这应该不是问题)。否则,我刚刚建议的内容将导致发布者阻塞,直到快照完成。
此外,如果您使用默认设置通过GUI设置复制,这可以很好地理解如何一次执行一个快照。如果要复制大量数据(千兆字节而不是兆字节),这对于在较长时间内分发快照以减少发布服务器负载非常有用。 http://www.replicationanswers.com/TransactionalOptimisation.asp