7

我意识到这是一个被广泛讨论的话题,但我看到的所有建议似乎都涉及对 SQL Server 的直接访问,这在我们的实例中并不理想。

我们的场景是一个带有(比如说)100 个表的远程 SQL Server 数据库。我们正在开发一个轻量级桌面应用程序,它将使用 SQL Server Compact 数据库并定期与远程服务器同步(比如说)20 个表的子集。

我想控制复制的发生方式,因为速度对我们来说是一个主要问题,因为远程服务器在 1000 英里之外。

此外,我不需要同步每个表中的所有记录 - 只需要与每个用户相关的记录。

我非常喜欢SQL Merge工具,但它要求客户端连接到远程 SQL Server。目前这是不可能的,我们正在考虑通过通过我们的应用程序或其他方法访问的 Web 服务与远程服务器连接。

欢迎任何建议。

更新

澄清一下,互联网连接会断断续续,这就是我们需要同步两个数据库的主要原因。

4

3 回答 3

1

您为客户端使用紧凑型数据库这一事实对您在这种情况下的可用选项造成了一些相当大的限制。

鉴于您希望的限制和性能要求,您可以考虑实施基于服务的 http 端点以保持所需的表同步。如果您的架构允许,异步执行此操作会显着提高性能,但同样,根据您的架构,它甚至可能不可行。

其他需要考虑的事情是使用 Web 套接字而不是像上面提到的 Web 服务的标准 http 连接。这样您就可以保持客户端实时同步,因为 Web 套接字是真正的全双工实时连接。这样做的主要问题是,您要么必须确保所有客户端都兼容 web-socket,要么必须为不符合标准的客户端提供模拟 websocket 连接的后备方案。

不确定这是否有帮助。

于 2013-05-08T14:50:11.307 回答
1

您可以选择同步框架(需要更多编码并有一些其他限制)或合并复制,两者都通过 http/https 工作) - 请参阅此博客文章进行比较:http: //blogs.msdn.com/b/ sqlservercompact/archive/2009/11/09/merge-replication-vs-sync-services-for-compact.aspx

于 2013-05-08T17:02:17.073 回答
0

不能使用 MS Sync 框架吗?

几乎是为您的场景 AFAIK 设计的。

快速谷歌打开了这个教程......

http://social.technet.microsoft.com/wiki/contents/articles/2190.tutorial-synchronizing-sql-server-and-sql-server-compact-sync-framework.aspx

于 2013-05-08T14:58:18.273 回答