SQL Server 2008 复制和同步框架 - 实际限制

SQL Server 2008 复制和同步框架 - 实际限制

我们正在考虑将客户的数据托管在我们自己的系统上,并使用 MS Sync Framework 通过每个客户站点上的 SQL Server 实例复制数据。每个客户可能平均拥有约 500MB 的数据,并且可能有多达 1,000 个客户站点,因此我们总共拥有约 500GB 的数据。数据更改需要双向复制。

有人尝试过使用如此多客户端的分布式系统吗? 是否存在实际限制?

答案1

我参与过一个项目,该项目使用 Sync Framework 将运行 SQL Express 2008 的远程站点(一些在 WAN 上,一些在 ADSL 上(最初有些甚至是拨号连接的,尽管这些站点已升级为 3G 无线调制解调器))同步到中央 SQL Server。

我们没有扩展到 1,000 个站点——在我为该客户工作结束时,可能只有大约 60-80 个站点。我们发现同步框架非常可靠。我们遇到的唯一问题是,当我们使用 SQL Server 的更改跟踪特征。

我们注意到,偶尔我们会“错过”数据变更集,当我们设法以可重复的方式重现这种情况时,这是一种公平的推出方式,因此我们联系了 Microsoft PSS。

最后,他们确认,本质上来说,SQL 更改跟踪有时会将更新报告为删除/插入,这会让同步框架完全困惑。面对这种情况,我们不得不求助于使用触发器推出我们自己的更改跟踪实现。事实证明,这是有益的,因为 a) 它实际上运行正常,并且 b) 我们对更改的记录和审计有了更多的控制权。

此应用程序是使用 Sync Framework 1.0 版编写的,这意味着我们的团队必须为客户端调整自定义提供程序。v2.0 现在带有自己的同步提供程序这样你就不用担心这件事了。

另一件需要考虑的事情是使用直接 SQL 连接还是利用 WCF 提供程序支持。如果您的客户端站点通过 Internet 访问主服务器,WCF 可能是最佳选择 - 然后您可以根据需要添加安全性/加密。您甚至可以考虑优化 WCF 传输层以包含某种压缩。

也许值得使用类似Wireshark如果你也打算这样做,可以比较一下网络使用情况。最好提前了解一下你的带宽需求!

—戴夫

相关内容