3

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

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

我探索了以下这些选项:

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

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

4

3 回答 3

4

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

Sql 天蓝色数据同步。

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

微软同步框架

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

SQL Server 更改跟踪

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

于 2013-09-12T00:40:10.153 回答
2

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

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

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

于 2013-09-13T00:06:19.237 回答
0

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

宣布 Azure SQL 数据同步全面上市

于 2018-06-19T03:39:35.703 回答