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