我们有一个需求,我们必须在不同的数据库实例之间定期移动数据。(例如,一些客户愿意为更好的性能支付更多的钱)。所以这不会是一次性的
数据库表具有引用完整性。每次迁移客户数据时,是否有一种方法可以在不重写sql脚本(或其他方法)的情况下完成此操作?
我遇到了这个如何在多个数据库表之间移动数据,同时保持外键关系/引用完整性?然而,似乎我们每次迁移数据时都写脚本(如果我误解了这个线程的答案,请纠正我)。
感谢编辑:- 两个服务器都使用SQL Server 2012(相同版本)。这是一个Azure SQL Server数据库。
- 它们之间不一定是链接的(它们之间没有防火墙) 我们只是在传输一些数据,而不是整个数据库。这只适用于选择多付钱的特定客户。
- 两个数据库中的模式完全相同。
Preyash -请参阅拆分合并工具的文档。Split-Merge工具允许您在数据库之间移动数据,正如您所描述的那样,基于分片键(例如,客户ID)。您需要对应用程序进行的一个修改是添加一个分片映射(即,一个了解哪些客户驻留在哪些数据库中的全局状态的数据库)。
看看Azure数据同步。它更符合你的需求。但是,您最终可能需要另一个SQL Azure DB来维护Hub。Azure数据同步遵循轮辐模式,可以让你在几分钟的同步间隔内进行所有灵活的定向同步。它更简单,可以设置它非常快,没有任何脚本和所有你想要的。