1

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

现在在 Azure 中,到目前为止,我已经设法使用以下 T-SQL 建立了主数据库的备份(到另一个 sql 服务器实例):

CREATE DATABASE targetserver.backupName AS COPY OF sourceserver.sourceName

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

所以我想知道我是否可以与其他用户一起限定一些事情:

  1. 3GB 备份需要超过 30 分钟(并且还在继续)才能复制到另一个服务器实例是否正常?

  2. 我应该将备份保存在与源相同的服务器上吗?我非常紧张,因为在 Azure 门户中单击几下可能会清除大量关键数据!我知道这是一个“黑天鹅”事件,但让所有东西都在单个服务器实例中运行并不容易。

  3. 是否有更快的方法来备份 SQL Azure 数据库?我已经查看了Red-Gate,但进行次日增量备份似乎很昂贵。

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

我应该补充一点,我很高兴完全重新考虑我的备份策略,以使其对 Azure 更加友好。关键是缓解管理员错误,例如由于笨拙的语句而丢弃重要数据的负载(备份间隔越短越好)以及将 24 小时备份推送到不同的存储方法,例如 blob 容器。

更新 - - -

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

4

1 回答 1

1

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

您的另一个选择是导出 .bacpac 文件并将其存储在 blob 存储中。有这方面的图书馆,但我没有手头的参考资料。这也将是一个更便宜的选择。我很确定这就是 Red Gate 在他们服务的掩护下所做的事情。

于 2013-03-18T05:36:37.920 回答