复制 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 数据库中

我可以在 Azure Sql 数据库和 Sql Server 2012(本地服务器)之间创建复制吗?

从global到mooncake迁移SQL Azure

将 Azure 数据工厂上的数据管道从 SQL Server 复制到 Blob 存储