任何人都有一些想法,这是以增量方式将一些数据库表从 Azure SQL DB 连续复制到 Azure SQL DB(PaaS) 的最佳方法。
我已经尝试过数据同步预览(模式即使在几个小时后也没有加载),数据工厂(复制数据) - 快速但它总是复制整个数据(重复记录) - 而不是增量方式。
请建议。
任何人都有一些想法,这是以增量方式将一些数据库表从 Azure SQL DB 连续复制到 Azure SQL DB(PaaS) 的最佳方法。
我已经尝试过数据同步预览(模式即使在几个小时后也没有加载),数据工厂(复制数据) - 快速但它总是复制整个数据(重复记录) - 而不是增量方式。
请建议。
这个请求背后的业务需求是什么?
1 - 您是否在数据库 1 中有一些参考数据并希望将这些数据复制到数据库 2?
如果是这样,那么如果您在同一逻辑服务器中,则使用跨数据库查询。有关详细信息,请参阅我的文章。
2 - 你能在不同的地区拥有数据库的副本吗?如果是这样,请使用主动异地复制来保持数据库同步。有关详细信息,请参阅我的文章。
3 - 如果您只需要复制几个表并且数据量很低,那么只需编写一个简单的 PowerShell 程序(工作流程)来从源中涓流加载目标。
根据您选择的时间安排 Azure 自动化中的程序。我会使用一个标志来指示哪些记录已被复制。
将插入到目标中并在事务中更新源标志以保证一致性。这种模式是通过痛苦的行模式来排列的。
您甚至可以批处理记录。研究使用 .Net 的 system.data.sqlclient 库中的SQLBulkCopy。
4 - 最后但同样重要的是,Azure SQL 数据库现在支持 OPENROWSET 命令。不幸的是,当您在云中时,此功能是只读的 blob 存储文件模式。旧版本的本地命令允许您写入文件。
我希望这些建议有所帮助。
快乐编码。
狡猾的 DBA 约翰
我能够使用 Azure ASM 门户中的数据同步预览实现云到云迁移 以下是限制
如果您想使用 Azure 数据工厂,为了进行增量更新,您需要更改查询以查看源表上的创建/修改日期。然后,您可以将该数据放入目标端的“暂存表”中,然后使用存储的 proc 活动将您的插入/更新到“真实表”中,最后截断暂存表。
希望这可以帮助。