【问题标题】:What is the best way to achieve data sync between SQL Azure and Multiple On-Premises SQL server databases?在 SQL Azure 和多个本地 SQL 服务器数据库之间实现数据同步的最佳方式是什么?
【发布时间】:2013-09-15 22:23:23
【问题描述】:

我有一个如下所述的场景,我需要实施最佳数据同步方法。

  1. 我有一个集中式 SQL Azure 数据库(主数据库)
  2. 大约有 20 个(将来会增加)本地 SQL Server 数据库。这些数据库不一定总是连接到互联网。
  3. 所有主数据库和本地数据库都将具有相同的架构/表结构。
  4. 我想使用 SQL Azure 在所有本地数据库之间进行双向数据同步,反之亦然。
  5. 数据同步频率为一天一次。
  6. 每个本地数据库大小都是合理的(不太大也不太小)。

我探索了以下这些选项:

  1. SQL Azure 数据同步
  2. Microsoft 同步框架
  3. SQL Server 2008 变更数据捕获
  4. SQL Server 更改跟踪

我想知道实现这一目标的最佳方法。

【问题讨论】:

  • 当你说“我探索过的选项”时,探索的结果是什么?
  • 任何方式来同步架构及其更改,例如存储过程、视图、序列等?

标签: sql sql-server azure-sql-database


【解决方案1】:

我一直在使用 SQl azure 数据同步、Microsift 同步框架和 Sql 服务器更改跟踪。我对变更数据捕获一无所知。

Sql azure 数据同步。

这是实现数据同步的最简单方法。这是配置问题。但不幸的是仍处于预览阶段,微软尚未推荐用于生产。我们一直在使用同步分布在不同地理位置的 20 个数据库,到目前为止效果很好。无需编码。但是您将来使用此服务时可能需要付费。目前是免费的。

Microsoft 同步框架

Microsoft 同步框架适用于开发人员。开发者可以使用 Sync 框架作为 API 开发同步应用程序。 Sql azure 数据同步在内部使用同步框架。要使用 azure 实现数据同步,您需要使用 WCF 实现 N 层架构。并且您需要在 azure 网站或虚拟机中托管您的 WCF 服务。需要相当长的开发时间,有关 Microsoft 的示例实施,请参阅以下链接。开发后,您可以轻松配置和使用同步多个数据库。 Database Sync:SQL Server and SQL Express N-Tier with WCF

SQL Server 更改跟踪

您需要手动对每个表进行数据同步编程,并且需要在每个 sql 服务器之间设置链接服务器。要使用 azure 数据库设置链接服务器,您需要打开一些特定的端口。

【讨论】:

  • 在SQL Server Change Tracking中,我们只能通过设置链接服务器来同步数据吗?或者我们可以使用 C#.Net 代码来同步它?
  • 或者我们必须再次使用 MS Sync 框架在主/客户端数据库之间移动数据?
  • 更改跟踪您不需要使用任何其他框架。您使用纯 sql 进行更改跟踪。
  • 但是我需要跨数据库服务器同步数据。我将如何实现?
  • SQL 更改跟踪只是更改跟踪。您必须输入代码来获取更改并与另一个数据库同步。
【解决方案2】:

您列表中的项目#3 和#4 并不是真正的同步解决方案,只是其中的一部分。 SQL CDC 和 SQL CT 都允许您跟踪更改。您必须添加额外的代码来获取这些更改并将其应用/同步到另一个数据库。

如果您不想编写代码,SQL 数据同步服务将是您的最佳选择。请注意,直到今天(尽管它的预览版已经很久了),Data Sync 仍处于预览模式。

如果您正在编写代码,Sync Fx 也是一个不错的选择(SQL Data Sync 内部使用 Sync Framework)。

【讨论】:

  • 是的,谢谢 JuneT..我知道我需要编写额外的代码来进行同步。只是想确认一下。
  • JuneT - 是否有任何可能性/选项可以避免同步的概念并应用任何新技术?
  • 不知道你到底在问什么。您想同步但又想避免同步的概念?
  • 我的意思是我的目标是确保主服务器和所有客户端的数据应该相同。那么要实现这一点,除了这些同步选项之外,还有其他最佳选择吗?
  • 我看到了您关于使用 MS Sync 框架进行同步的博文。您能帮我做同样的事情吗?因为我的要求是一个集中的云数据库和学校中的许多客户端数据库。我想在某个时间间隔内双向同步数据
【解决方案3】:

Azure SQL 数据同步现已全面上市 (GA),如以下 Microsoft 文章所示。

Announcing the general availability of Azure SQL Data Sync

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-13
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多