SQL Server在数据库

时间:2015-06-01 08:57:38

标签: sql-server foreign-keys azure-sql-database database-migration azure-elastic-scale

我们需要定期在不同的数据库实例之间移动数据。 (例如,一些愿意为更好的表现支付更多费用的客户)。所以这不会是一次性的。

数据库表具有参照完整性。有没有一种方法可以在不重写sql脚本(或其他方法)的情况下每次迁移客户数据时都可以这样做?

我遇到了这个How to move data between multiple database's table while maintaining foreign-key relationships/referential integrity?。但是,每当我们迁移数据时,我们似乎都会编写脚本(如果我误解了这个帖子的答案,请纠正我。)

由于

编辑:

  • 两台服务器都使用SQL Server 2012(相同版本)。它是一个Azure SQL Server数据库。
  • 它们不一定是链接的(它们之间没有防火墙)
  • 我们只传输一些数据,而不是整个数据库。这仅适用于选择支付更多费用的某些客户。
  • 两个数据库中的架构完全相同。

2 个答案:

答案 0 :(得分:4)

Preyash - 请参阅Split-Merge tool上的文档。如您所述,拆分合并工具可以根据分片键(例如,客户ID)在数据库之间移动数据。您的应用程序需要进行的一项修改是添加shard map(即,了解客户所在的全局状态的数据库)。

答案 1 :(得分:1)

查看Azure Data Sync。它更符合您的要求。但是您可能最终会拥有另一个SQL Azure数据库来维护集线器。 Azure数据同步遵循中心辐条模式,并允许您使用几分钟的同步间隙执行所有灵活的方向同步。它更简单,可以非常快速地设置它,而不需要任何脚本和所有脚本。