【问题标题】:Best way to sync remote SQL Server database with local SQL Server Compact database?将远程 SQL Server 数据库与本地 SQL Server Compact 数据库同步的最佳方式?
【发布时间】:2013-05-08 14:37:39
【问题描述】:

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

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

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

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

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

欢迎提出任何建议。

更新

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

【问题讨论】:

    标签: c# sql sql-server web-services sql-server-ce


    【解决方案1】:

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

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

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

    不确定这是否有帮助。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        不能使用 MS Sync 框架吗?

        非常适合您的场景 AFAIK。

        快速谷歌翻了本教程...

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

        【讨论】:

        猜你喜欢
        • 2020-05-13
        • 2014-11-21
        • 2023-04-08
        • 2023-03-12
        • 1970-01-01
        • 1970-01-01
        • 2011-08-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多