从 Microsoft Azure 中存储的备份还原

适用于:SQL Server

本主题概述在使用 Azure Blob 存储中存储的备份还原数据库时的注意事项。 这适用于使用 SQL Server URL 备份或目标为 Microsoft Azure 的 SQL Server 托管备份创建的备份。

如果在 Azure Blob 存储中存储了要还原的备份,建议查看本主题,然后查看介绍关于如何还原数据库的步骤的主题,本地和 Azure 备份的还原步骤相同。

概述

用于从本地备份还原数据库的工具和方法也适用于从云备份还原数据库。 以下各节介绍了这些注意事项,以及在使用 Azure Blob 存储服务存储的备份时应当了解的所有差异。

“使用 Transact-SQL”

  • 因为 SQL Server 必须连接外部源才能检索备份文件,所以会使用 SQL 凭据来对存储帐户进行身份验证。 因此,RESTORE 语句需要有 WITH CREDENTIAL 选项。 有关详细信息,请参阅使用 Microsoft Azure Blob 存储执行 SQL Server 备份和还原

  • 如果你正在使用目标为 Microsoft Azure 的 SQL Server 托管备份管理备份到云中的备份,则可以通过使用 smart_admin.fn_available_backups 系统函数来查看存储中的所有可用备份。 此系统函数会在一个表中返回数据库的所有可用备份。 因为结果以表的形式返回,所以您可以对结果进行筛选或排序。 有关详细信息,请参阅 managed_backup.fn_available_backups (Transact-SQL)

使用 SQL Server Management Studio

  • 还原任务用于使用 SQL Server Management Studio 还原数据库。 备份媒体页现在包含“URL”选项,可以显示存储在 Azure Blob 存储中的备份文件。 您还必须提供用于对存储帐户进行身份验证的 SQL 凭据。 随后,使用 Azure Blob 存储中的可用备份填充“要还原的备份集”网格。 有关详细信息,请参阅使用 SQL Server Management Studio 从 Azure 存储还原

优化还原

要减小还原写入时间,请将 “执行卷维护任务” 用户权限添加到 SQL Server 用户帐户。 有关详细信息,请参阅数据库文件初始化。 如果在开启即时文件初始化后还原操作仍很慢,请查看执行数据库备份的实例的日志文件的大小。 如果日志非常大(好几 GB),则还原操作慢是正常的。 在还原过程中,必须清空日志文件,这需要花费相当多的时间。 数据库事务日志文件的初始还原无法受益于即时文件初始化。

要减少还原次数,建议使用压缩的备份。 对于大小超过 25 GB 的备份,请使用 AzCopy 实用工具 下载到本地驱动器,然后执行还原。 有关其他备份最佳实践和建议,请参阅 SQL Server Backup to URL Best Practices and Troubleshooting

在 SQL Server 2016 (13.x) 及更高版本中,块 blob 是备份到 URL 的首选。

  • 如果你使用的是页 blob,则可以在执行还原时打开跟踪标志 3051 以生成详细日志。 此日志文件放置在日志目录中,采用 BackupToUrl-\<instancename>-\<dbname>-action-\<PID>.log 格式命名。 日志文件包含每次往返 Azure 存储的相关信息(包括计时),这在诊断问题时可能非常有用。

关于执行还原操作的主题