在 SQL Azure 和多个本地 SQL Server 数据库之间实现数据同步的最佳方法是什么?

Ana*_*dke 3 sql sql-server azure-data-sync azure-sql-database

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

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

我探索过以下这些选项:

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

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

Mah*_*esh 5

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

SQL Azure 数据同步。

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

微软同步框架

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

SQL Server 更改跟踪

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