我已经分别询问了这些技术中的每一种,但确实没有找到合适的答案。
我们的中央办公室有一台运行 SQL Server 2005 Enterprise 的服务器,该服务器有几个大型(在 DSL 是限制因素的意义上说很大)数据库,我们需要在每个位置的本地副本。我们目前有几十个地点,并且需要将更多地点带到网上。在接下来的 2 年内,我们需要将这些数据库同步到的位置总数将达到数百个。
我们正在努力解决每个位置的 WAN 连接问题。这些是 DSL 线路,并且这些位置的布线并不总是最好的。我们目前遇到的问题是,某些地点每小时都会出现故障。虽然我们正在努力通过重新布线和当地电信公司的协助来解决这些问题,但它主要强调了手头的问题:我们需要一个可以处理偶尔连接的双向同步。
我们尝试了事务复制一段时间,虽然它在某些时候有效,但对我们来说维护成本太高,而且它似乎经常随机出错而没有可能的解释,迫使我们重新初始化订阅(这可能需要 4几个小时,假设该位置将保持连接足够长的时间以一次获取整个快照)。我们已经考虑从头开始推出我们自己的解决方案,但考虑到我们需要的规模和可靠性,我认为这不是最好的主意。
到目前为止,我们还研究了 Sync Framework,以及其他人建议的 Service Broker。Sync Framework 似乎更合适,但有人告诉我 Service Broker 可扩展性更好且更可靠?我找不到任何与 Sync Framework 或 Service Broker 相关的开销的经验数据,因此在这方面无法比较两者。
我们真正需要的是中央办公室服务器和远程客户端之间的双向同步,它可以自主运行,并且可以在发生需要我们干预的故障时向管理员报告。
这个问题有很多可能的解决方案,都涉及完全不同的技术,我需要重新审视这个问题。
对于我们的情况,您认为最佳解决方案是什么,为什么?
编辑:显然,升级到 SQL Server 2008 可以轻松解决这个问题。但是,我们想先尝试更便宜的选择。