SQL Azure中的备份非常缓慢

问题描述:

我目前正致力于将应用程序移植到Azure之前的SQL数据库备份策略。目前,我们正在使用SQL Server维护任务,每15分钟运行一次备份我们的本地数据库,保留1小时(因此保留4个本地副本)。我们还运行24小时备份,将其推送到Amazon S3。SQL Azure中的备份非常缓慢

现在在Azure中,我到目前为止已经使用管理下面的T-SQL提起主数据库的备份(到另一个SQL Server实例):

CREATE DATABASE targetserver.backupName AS COPY OF sourceserver.sourceName 

的源数据库为约3GB在规模并且正在扩大每月5-10%左右。我遇到的问题是复制过程非常缓慢!我在30分钟前发起了一个拷贝,它仍在运行!这意味着采用15分钟的备份计划在Azure中似乎站不住脚。

所以我想知道如果我能有资格的几件事情与其他用户:

  1. 这是正常的3GB备份接管30分钟(和计数)复制到另一个服务器实例?

  2. 我应该将备份放在与源相同的服务器上吗?我非常紧张,因为Azure门户中的几次点击可能会消除大量关键数据!我知道这是一个'黑天鹅'事件,但我不会轻易让所有的事情都在一个服务器实例中运行。

  3. 是否有更快的方法来备份SQL Azure数据库?我看了一下Red-Gate,但做每日增量备份的代价似乎很高。

对此的任何想法将不胜感激!

我应该补充一点,我很高兴重新考虑我的备份策略,使其更加Azure友好。关键是减轻管理员的错误,例如由于笨拙的陈述(备份间隔越短越好)而将重要数据的负载减少,并将24小时备份推入不同的存储方法,例如,一滴容器。

UPDATE ------

我等待1小时,重新开始后取消了初始备份请求。第二次备份在5分钟内完成。我现在回到Red-Gate看看他们的托管备份解决方案。

+0

是的,根据我对SQL-Azure的经验,3GB备份大约需要30分钟才能复制到另一个服务器实例,这是正常的。 – 2013-03-17 18:00:44

+0

数据库现在一直处于COPYING状态1小时,这仍然正常吗? – QFDev 2013-03-17 18:02:38

复制数据库运行需要多长时间不仅取决于数据的大小,还取决于当时正在运行的事务数量,因此此选项在您的情况下可能不成立。既然您有一个备份数据库,您可以通过备份备份并查看需要多长时间来为自己测试。

您的其他选择是导出.bacpac文件并将其存储在blob存储中。有这样的库,但我没有参考手。这也将是一个更便宜的选择。我很确定这是Red Gate在他们的服务范围内所做的。

+0

感谢knightpfhor。据我了解,出口到。bacpac不会产生事务一致的备份。 Redgate做的是运行一个CREATE DATABASE ...作为...的副本并从那里导出到.bacpac。他们还允许您直接导出到.bacpac,速度快得多,但没有任何事务上一致的保证。现在我正在与Redgate解决方案一起处理所有的日程安排,以便我们可以专注于其他领域。我们可以每天创建4次备份,每月40美元+在Azure中拥有另一个数据库的成本。 – QFDev 2013-03-18 10:37:47

+0

这完全正确。这是试图保持事务一致,这意味着如果您的数据库上有事务处理,则复制数据库运行速度会变慢。 – knightpfhor 2013-03-18 17:35:27

+1

你是对的,我们利用微软的导入/导出服务。这与您在Azure门户中看到的功能相同。 微软最近对SQL Azure的所有备份选项都进行了相当全面的运行http://blogs.msdn.com/b/windows_azure_technical_support_wats_team/archive/2013/03/04/different-ways-to-backup-your- windows-azure-sql-database.aspx 我为Red Gate工作并开发解决方案:) – 2013-03-20 07:36:42