在将我们的应用程序移植到 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 分钟的备份计划似乎是站不住脚的。
所以我想知道我是否可以与其他用户一起限定一些事情:
3GB 备份需要超过 30 分钟(并且还在继续)才能复制到另一个服务器实例是否正常?
我应该将备份保存在与源相同的服务器上吗?我非常紧张,因为在 Azure 门户中单击几下可能会清除大量关键数据!我知道这是一个“黑天鹅”事件,但让所有东西都在单个服务器实例中运行并不容易。
是否有更快的方法来备份 SQL Azure 数据库?我已经查看了Red-Gate,但进行次日增量备份似乎很昂贵。
对此的任何想法将不胜感激!
我应该补充一点,我很高兴完全重新考虑我的备份策略,以使其对 Azure 更加友好。关键是缓解管理员错误,例如由于笨拙的语句而丢弃重要数据的负载(备份间隔越短越好)以及将 24 小时备份推送到不同的存储方法,例如 blob 容器。
更新 - - -
我在等待 1 小时后取消了初始备份请求并重新启动。第二次备份在 5 分钟内完成。我现在回到 Red-Gate 看看他们的托管备份解决方案。