我们使用 2 个发布服务器、4 个发布和 1 个订阅服务器实现事务复制。我需要关闭我们的分发服务器几个小时。重新启动后,日志读取器是否能够从关机前停止读取日志的位置恢复?
我的想法是,因为事务日志备份将继续在发布者上并清除日志,所以日志阅读器将没有任何东西可以抓取。
我相信我唯一可靠的选择是重新初始化每个出版物并重新开始。
我对此的理解是正确的还是我把事情复杂化了?
谢谢!
我们使用 2 个发布服务器、4 个发布和 1 个订阅服务器实现事务复制。我需要关闭我们的分发服务器几个小时。重新启动后,日志读取器是否能够从关机前停止读取日志的位置恢复?
我的想法是,因为事务日志备份将继续在发布者上并清除日志,所以日志阅读器将没有任何东西可以抓取。
我相信我唯一可靠的选择是重新初始化每个出版物并重新开始。
我对此的理解是正确的还是我把事情复杂化了?
谢谢!
SQL 不会从日志中清除日志阅读器未标记为已完成(已提交分发)的事务。因此,当分发服务器关闭时,您的日志可能会增长,但一旦它回来,日志阅读器应该能够随着时间的推移赶上。
来自 BOL:
几个小时你会没事的,日志重用的条件之一是 VLF 中的所有记录是否都已被日志阅读器处理。
在关闭分发服务器之前,保持日志阅读器运行,找出并停止分发服务器关闭影响的每个发布的分发代理作业。
我已经在下面的链接上发布了这个脚本:
订阅者表需要更新 - 如何使用批处理以及如何在执行时不扰乱复制?