我有一个生产数据库,即其中有不断更新的数据库,并且我已将其配置为使用事务复制将其发布到另一台服务器。
当我配置事务复制时,我一直在执行以下操作:
- 禁用对源数据库的访问
- 备份源数据库然后恢复到订阅服务器
- 配置复制
- 重新启用我们应用程序的数据库访问
这种方法的问题在于停机安排,必须暂停我们运行的所有各种定时计划任务,并关闭依赖于该数据库的各种应用程序的访问。
我是否可以只配置事务复制而不禁用对发布数据库的访问,并且订阅数据库将正确跟上?即,所有 DML 语句是否都在发布服务器上排队,并且一旦订阅服务器准备就绪,它们就会被挑选出来并执行?
答案1
简单的答案是不需要...您不需要禁用对系统的访问等。下面是原因和工作原理...当您设置复制时,发布者会在您创建发布的那一刻创建数据快照。还有一个日志读取器与事务复制同时运行,它会捕获自上次创建快照以来的每个事务。所以...创建订阅者基本上是一个两步过程:
步骤 1:将快照应用于订阅服务器,在订阅服务器数据库上创建模式和数据。
步骤2:然后,按顺序在订阅服务器上应用自快照以来的事务,以使订阅服务器数据库保持最新数据。
所以基本上,不,您不需要做所有其他为创建新订阅者所做的工作。
需要帮助请叫我。
谢谢!
—虚拟机