![设置 SQL Server 2000 事务复制时是否需要禁用对发布者数据库的访问?](https://linux22.com/image/515379/%E8%AE%BE%E7%BD%AE%20SQL%20Server%202000%20%E4%BA%8B%E5%8A%A1%E5%A4%8D%E5%88%B6%E6%97%B6%E6%98%AF%E5%90%A6%E9%9C%80%E8%A6%81%E7%A6%81%E7%94%A8%E5%AF%B9%E5%8F%91%E5%B8%83%E8%80%85%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84%E8%AE%BF%E9%97%AE%EF%BC%9F.png)
我有一个生产数据库,即其中有不断更新的数据库,并且我已将其配置为使用事务复制将其发布到另一台服务器。
当我配置事务复制时,我一直在执行以下操作:
- 禁用对源数据库的访问
- 备份源数据库然后恢复到订阅服务器
- 配置复制
- 重新启用我们应用程序的数据库访问
这种方法的问题在于停机安排,必须暂停我们运行的所有各种定时计划任务,并关闭依赖于该数据库的各种应用程序的访问。
我是否可以只配置事务复制而不禁用对发布数据库的访问,并且订阅数据库将正确跟上?即,所有 DML 语句是否都在发布服务器上排队,并且一旦订阅服务器准备就绪,它们就会被挑选出来并执行?
答案1
简单的答案是不需要...您不需要禁用对系统的访问等。下面是原因和工作原理...当您设置复制时,发布者会在您创建发布的那一刻创建数据快照。还有一个日志读取器与事务复制同时运行,它会捕获自上次创建快照以来的每个事务。所以...创建订阅者基本上是一个两步过程:
步骤 1:将快照应用于订阅服务器,在订阅服务器数据库上创建模式和数据。
步骤2:然后,按顺序在订阅服务器上应用自快照以来的事务,以使订阅服务器数据库保持最新数据。
所以基本上,不,您不需要做所有其他为创建新订阅者所做的工作。
需要帮助请叫我。
谢谢!
—虚拟机