同步远程SQL Server数据库与本地SQL Server Compact数据库的最佳方法
本文关键字:数据库 Server SQL Compact 方法 最佳 同步 | 更新日期: 2023-09-27 18:12:33
我知道这是一个讨论得很多的话题,但我看到的所有建议似乎都涉及直接访问SQL Server,这在我们的实例中并不理想。
我们的场景是一个有100个表的远程SQL Server数据库。我们正在开发一个轻量级桌面应用程序,它将使用SQL Server Compact数据库,并定期与远程服务器同步(例如)20个表的子集。
我希望能够控制如何进行复制,因为速度对我们来说是一个主要问题,因为远程服务器在1000英里之外。
我也不需要同步每个表中的所有记录,只需要同步与每个用户相关的记录。
我很喜欢SQL合并设施,但它需要客户端连接到远程SQL服务器。这目前是不可能的,我们正在考虑通过通过我们的应用程序或其他方法访问的web服务来连接到远程服务器。
欢迎提出任何建议。
需要说明的是,网络连接会断断续续,这就是我们需要同步两个数据库的主要原因。
您为客户端使用紧凑的数据库这一事实给您在此场景中的可用选项带来了一些相当严重的限制。
考虑到您想要的限制和性能需求,您可以考虑实现一个基于服务的http端点来保持所需的表同步。如果您的体系结构允许这样做,那么异步执行将显著提高性能,但同样,根据您的体系结构,它甚至可能不可行。
另一个要考虑的是使用web套接字而不是标准的http连接,就像上面提到的web服务。这样你就可以保持客户端实时同步,因为web套接字是真正的全双工实时连接。这样做的主要问题是,你要么必须确保所有客户端都符合web-socket标准,要么为不符合标准的客户端提供一个模拟websocket连接的模拟框架。
不确定这是否有帮助
您可以选择同步框架(需要更多的编码和有一些其他限制)或合并复制,两者都通过http/https工作)-查看这篇博客文章的比较:http://blogs.msdn.com/b/sqlservercompact/archive/2009/11/09/merge-replication-vs-sync-services-for-compact.aspx
可以不使用MS Sync框架吗?
基本上是为你的场景设计的。
快速谷歌打开这个教程…
http://social.technet.microsoft.com/wiki/contents/articles/2190.tutorial-synchronizing-sql-server-and-sql-server-compact-sync-framework.aspx