我使用推送事务复制将一个大型数据库(接近 1TB)复制到三个远程服务器。订阅者是只读的。每个月的一天都会插入和更新大量数据(来自其他来源)。它总是在一天之后复制失败,我们每个月从备份手动初始化复制。
是否可以在插入日之前切换到日志传送,并在批量插入日志传送后切换回事务复制?那么不需要复制大备份文件重新初始化吗?
我使用推送事务复制将一个大型数据库(接近 1TB)复制到三个远程服务器。订阅者是只读的。每个月的一天都会插入和更新大量数据(来自其他来源)。它总是在一天之后复制失败,我们每个月从备份手动初始化复制。
是否可以在插入日之前切换到日志传送,并在批量插入日志传送后切换回事务复制?那么不需要复制大备份文件重新初始化吗?
不。事务复制是逻辑的,而日志传送是物理的。两者不能随意切换。但是,如果您的订阅者一开始是只读的,那么可以用日志传送开箱即用地替换事务复制,但代价是更新会稍微延迟,并且每次日志被发送时都必须断开备用站点上的读取器应用(通常这远没有听起来那么糟糕)。鉴于与事务复制相比,日志传送的效率更高、问题更少,我会毫不犹豫地做这个替换。
我质疑您是否需要按计划重新初始化。我已经有很长时间没有需要重新初始化的复制拓扑。而当我们这样做的时候,只是因为有一个模式变化不太好。当您说大量数据无法复制时,这是什么意思?复制很乐意将大量数据更改交付给订阅者。如果您遇到延迟限制,您可以在发布者处增加这些限制或将大型事务分解为较小的事务。您还可以选择为日志读取器代理设置 MaxCmdsInTran 选项,让它为您分解您的事务。