Azure SQL 数据库到 Azure SQL 数据库复制

Azure SQL DB to Azure SQL DB replication

任何人都有一些想法,以增量方式实现从 Azure SQL 数据库到 Azure SQL 数据库(PaaS)的某些数据库表的连续复制的最佳方法。

我试过数据同步预览(架构在几个小时后仍未加载), 数据工厂(复制数据)- 速度很快,但它总是复制整个数据(重复记录)- 不是增量方式。

请推荐。

如果您想使用 Azure 数据工厂,为了进行增量更新,您需要更改查询以查看源 table 上的 created/modified 日期。然后,您可以获取该数据并将其放入目标端的 "Staging Table",然后使用存储过程 activity 将 insert/update 放入 "Real table",最后截断暂存 table.

希望对您有所帮助。

我能够使用 Azure ASM 门户中的数据同步预览实现云到云的迁移 以下是限制

  • 任何数据库可以属于的最大同步组数:5
  • 对象名称中不能使用的字符:对象(数据库、表、列)的名称不能包含可打印字符句点(.)、左方括号([)或右方括号(])。

Supported limits on DB Dimensions

参考:http://download.microsoft.com/download/4/E/3/4E394315-A4CB-4C59-9696-B25215A19CEF/SQL_Data_Sync_Preview.pdf

此请求背后的业务需求是什么?

1 - 您在数据库 1 中有一些参考数据并想将该数据复制到数据库 2 吗?

如果是这样,如果您在同一台逻辑服务器中,则使用跨数据库查询。有关详细信息,请参阅我的 article

2 - 你能在不同的地区拥有数据库的副本吗?如果是这样,请使用活动异地复制来保持数据库同步。有关详细信息,请参阅我的 article

3 - 如果您只需要复制几个表并且数据量很小,那么只需编写一个简单的 PowerShell 程序(工作流)从源中缓慢加载目标。

在您选择的时间安排 Azure 自动化中的程序。我会使用一个标志来指示哪些记录已被复制。

将插入目标和更新源标志放在一个事务中以保证一致性。此图案为一排一排的折腾图案。

您甚至可以批量记录。考虑使用 .Net 的 system.data.sqlclient 库中的 SQLBulkCopy

4 - 最后但同样重要的是,Azure SQL 数据库现在支持 OPENROWSET 命令。不幸的是,当您在云中时,此功能是只读 blob 存储文件模式。旧版本的本地命令允许您写入文件。

希望这些建议对您有所帮助。

编码愉快。

约翰 狡猾的 DBA