复制 SQL Azure 数据库的完成延迟?
Posted
技术标签:
【中文标题】复制 SQL Azure 数据库的完成延迟?【英文标题】:Completion latency to copy a SQL Azure database? 【发布时间】:2012-08-08 20:03:30 【问题描述】:我想知道通过 SQL Azure 完成 database copy 需要多少时间。我正在考虑一个场景:
-
首先填充单个数据库,然后保持只读状态。
创建了一组副本。
尴尬任务在每个副本上并行处理(只读)。
删除副本以降低托管成本。
如果 SQL Azure 上的数据库副本相当快,那么这种情况是有意义的。
是否有人知道有关完成 SQL Azure 数据库副本的延迟的信息,可能不包括数据库的 GB 大小(假设较小的数据库比大数据库的复制速度更快)?
附属问题:如果同时触发10个DB副本,完成第10个副本会需要10倍的时间吗?或者 SQL Azure 是否支持这种操作的某种程度的并行化。
【问题讨论】:
【参考方案1】:对于复制各种大小的数据库需要多长时间,我没有经验数据,但根据我的经验,时间通常是几分钟。对于我经常使用的小于 100MB 的数据库,我允许 5 分钟,但这可能非常慷慨。我偶尔会复制更大的数据库,但似乎并没有比这大得多,我怀疑实际上很多时间都花在了配置新数据库而不是复制数据上。
我猜测如果您启动多个副本会发生什么,但由于 SQL Azure 基础架构,如果同时启动多个副本会出现很大的减速,我会感到惊讶。
我不知道您希望整个过程需要多长时间,但我认为这基本上是个好主意。不过,我强烈建议您自己进行一些基准测试。
【讨论】:
【参考方案2】:我发现它特别慢。我刚刚复制了一个 3.45MB 的小型数据库,耗时超过 5 分钟。 6:42 开始,6:49 结束。
这只是使用 SQL 命令行 create with copy。例如:
CREATE DATABASE NewDB AS COPY OF OldDB;
我不确定交易是什么 - 每当我去检查进度时,它什么也没显示,然后突然就完成了。
例如:
SELECT * FROM sys.dm_database_copies c
JOIN sys.databases d ON c.database_id = d.database_id
WHERE databases.name = 'NewDB';
percent_complete 列在我每次查看时都是空的。我其实很担心我做错了什么......
【讨论】:
以上是关于复制 SQL Azure 数据库的完成延迟?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Azure SQL 迁移到 SQL Server? [复制]
创建 Azure 数据工厂管道以将新记录从 DocumentDB 复制到 Azure SQL
Azure 数据工厂 ADF 数据管道将文件名包含在将数据复制到 sql 数据库中