2013-05-08 112 views
6

我意识到这是一个非常讨论的话题,但我所看到的所有建议似乎涉及直接访问SQL Server,在我们的实例中这并不理想。同步远程SQL Server数据库与本地SQL Server Compact数据库的最佳方法是什么?

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

我想控制复制的发生方式,因为远程服务器距离千米远,速度对我们来说是一个主要问题。

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

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

欢迎任何建议。

UPDATE

只是为了澄清,互联网连接将是间歇性的,这就是为什么我们需要两个数据库同步的主要原因。

回答

1

对于客户端使用紧凑型数据库这一事实,在此场景中对可用选项有一些相当大的限制。

考虑到您希望的限制和性能要求,您可以考虑实施基于服务的http端点以使所需的表保持同步。如果你的架构允许的话,这样做会异步地提高性能,但再一次,根据你的体系结构,它甚至可能不可行。

还有一件事要考虑的是使用网络套接字而不是标准http连接来进行上述Web服务。这样你可以保持客户端实时同步,因为网络套接字是真正的全双工实时连接。与此相关的主要问题是,您必须确保所有客户端都符合网络套接字规范,或者提供一个回退模拟与不符合标准的客户端的仿真框架的WebSocket连接。

不知道这是否有帮助。

0

你不能使用MS Sync框架吗?

非常适合您的场景AFAIK。

快速谷歌把这个教程起来......

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

+0

MS Synch Framework是否可以通过HTTP使用?我认为它需要直接链接到两个数据库? – cusimar9 2013-05-08 15:15:21

+0

我相信所以根据这里的答案︰http://stackoverflow.com/questions/503832/sync-framework-can-you-sync-over-http – nakchak 2013-05-08 15:21:33

相关问题