你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure 应用服务中备份和还原应用

Azure 应用服务中,可以轻松还原应用备份。 还可以按需进行自定义备份或配置计划的自定义备份。 可以通过还原到新应用或槽来覆盖现有应用以还原备份。 本文介绍如何还原备份并进行自定义备份。

基本、标准、高级和隔离层支持备份和还原。 对于基本层,只能备份和还原生产槽。 有关缩放应用服务计划以使用更高层的详细信息,请参阅增加 Azure 中的应用

注意

应用服务环境 (ASE) V2 和 V3 中的支持处于预览状态。 对于应用服务环境:

  • 备份可以还原到 ASE 本身(而不是另一个 ASE)中的目标应用。
  • 可将备份还原到 ASE 中另一个应用服务计划中的目标应用。
  • 备份可以还原到源应用所在的同一操作系统平台的目标应用。

自动备份与自定义备份

应用服务中有两种类型的备份。 只要应用处于受支持的定价层,就会定期为应用进行自动备份。 自定义备份需要初始配置,并且可以按需或按计划进行。 下表显示了这两个类型之间的差别。

自动备份 自定义备份
定价层 基本、标准、高级。 基本、标准、高级、独立。
需要进行配置 否。 是的。
备份大小 30 GB。 10 GB,其中 4 GB 可以是链接的数据库。
链接的数据库 未备份。 可以备份以下链接的数据库:SQL 数据库Azure Database for MySQLAzure Database for PostgreSQLMySQL in-app
需要存储帐户 否。 是的。
备份频率 每小时,不可配置。 可配置。
保留 30 天,不可配置。
- 第 1-3 天:保留每小时备份。
- 第 4-14 天:保留每 3 小时的备份。
- 第 15-30 天:保留每 6 小时的备份。
0-30 天或无限期。
可下载 不是。 是的,作为 Azure 存储 Blob。
部分备份 不支持。 支持。

还原备份

注意

应用服务在还原备份时会停止目标应用或目标槽。 若要最大限度减少生产应用的停机时间,请首先将备份还原到部署槽位,然后交换到生产槽。

  1. Azure 门户应用管理页的左侧菜单中,选择“备份”。 “备份”页列出了应用的所有自动和自定义备份以及每个备份的状态。

    显示如何打开“备份”页的屏幕截图。

  2. 通过单击相应的“还原”链接选择要还原的自动备份或自定义备份。

    显示如何选择还原链接的屏幕截图。

  3. 会自动填充“备份详细信息”部分。

  4. 在“选择目标”中指定还原目标。 若要还原到新应用,请在“应用服务”框中选择“新建”。 若要还原到新的部署槽位,请选择“部署槽位”框下的“新建”。

    如果选择现有槽,则会清除并覆盖其文件系统中的所有现有数据。 生产槽的名称与应用名称相同。

  5. 可以在“高级选项”下选择还原站点配置。

  6. 请单击“还原”。

创建自定义备份

  1. Azure 门户应用管理页的左侧菜单中,选择“备份”。

    显示如何打开“备份”页的屏幕截图。

  2. 在“备份”页顶部,选择“配置自定义备份”。

  3. 在“存储帐户”中,选择现有存储帐户(同一订阅中)或选择“新建”。 对“容器”执行相同操作。

    若要备份链接的数据库,请选择“下一步:高级”>“包含数据库”,然后选择要备份的数据库。

    注意

    若要使支持的数据库显示在此列表中,其连接字符串必须位于应用“配置”页的“连接字符串”部分中。

    应用内 MySQL 数据库无需任何配置即可备份。 如果对应用内 MySQL 数据库进行手动设置,例如添加连接字符串,则备份可能无法正常工作。

  4. 单击 “配置”

    配置存储帐户和容器后,可随时启动按需备份。 按需备份会无限期保留。

  5. 在“备份”页顶部,选择“立即备份”。

    显示如何进行按需备份的屏幕截图。

    自定义备份显示在列表中,其中包含进度指示器。 如果失败并出现错误,可以选择行项以查看错误消息。

配置自定义计划备份

  1. 在“配置自定义备份”页中,选择“设置计划”。

  2. 根据需要配置备份计划,并选择“配置”。

备份和还原链接数据库

自定义备份可以包含链接数据库。 若要确保备份包含链接数据库,请执行以下操作:

  1. 确保链接数据库受支持
  2. 创建指向数据库的连接字符串。 如果应用的配置中存在某个数据库的有效连接字符串,则该数据库被视为“已链接”到该应用。
  3. 按照创建自定义备份中的步骤,在“高级”选项卡中选择链接数据库。

若要还原自定义备份中包含的数据库,请执行以下操作:

  1. 按照还原备份中的步骤操作。
  2. 在“高级选项”中,选择“包括数据库”。

有关故障排除信息,请参阅为何未备份我的链接数据库

配置部分备份

自定义备份支持部分备份(自动备份不支持部分备份)。 有时你不想备份应用中的所有内容。 以下是一些示例:

  • 设置每周备份应用,其中包含永远不会更改的静态内容,例如旧的博客文章或图像。
  • 应用的内容超过 10 GB(这是一次可以备份的最大量)。
  • 不想备份日志文件。

若要排除存储在将来的备份中的文件夹和文件,请在应用的 %HOME%\site\wwwroot 文件夹中创建一个 _backup.filter 文件。 指定要在此文件中排除的文件和文件夹列表。

提示

可以通过导航到 https://<app-name>.scm.azurewebsites.net/DebugConsole 来访问文件。 如果出现系统提示,请登录到你的 Azure 帐户。

确定要从备份中排除的文件夹。 例如,筛选出突出显示的文件夹和文件。

显示要从备份中排除的文件和文件夹的屏幕截图。

创建名为 _backup.filter 的文件并将上述列表放在文件中,但删除根 %HOME%。 每行列出一个目录或文件。 文件的内容应为:

\site\wwwroot\Images\brand.png
\site\wwwroot\Images\2014
\site\wwwroot\Images\2013

使用 ftp 或任何其他方法,将 _backup.filter 文件上传到站点的 D:\home\site\wwwroot\ 目录。 如果需要,可使用 Kudu DebugConsole 直接创建此文件,并在其中插入内容。

像往常一样运行备份,自定义自定义_backup.filter 中指定的所有文件和文件夹都会从将来备份中排除。

注意

_backup.filter 更改还原的工作方式。 如果没有 _backup.filter,还原备份会删除应用中的所有现有文件,并将其替换为备份中的文件。 使用 _backup.filter 时,应用文件系统中包含在 _backup.filter 中的任何内容都保留原样(不删除)。

如何存储备份

对应用进行了一次或多次备份后,可在存储帐户的“容器”页中看到备份以及应用。 在存储帐户中,每个备份都由一个 .zip 文件和一个 .xml 文件组成,前者包含备份数据,后者包含 .zip 文件内容的清单。 如果想要在无需实际执行应用还原的情况下访问备份,则可以解压缩并浏览这些文件。

应用的数据库备份存储在 .zip 文件的根目录中。 对于 SQL 数据库,这是 BACPAC 文件(无文件扩展名),并且可以导入。 若要基于 BACPAC 导出在 Azure SQL 数据库中创建数据库,请参阅导入 BACPAC 文件以在 Azure SQL 数据库中创建数据库

警告

改动 websitebackups 容器中的任何文件都导致备份无效,进而无法还原。

Error messages

“备份”页显示每个备份的状态。 若要获取有关失败备份的日志详细信息,请选择列表中的行项。 使用下表来帮助排查备份问题。 如果该表中未提到这种失败,请提交支持票证。

错误 Fix
存储访问失败。 删除备份计划,然后重新配置。 或者重新配置备份存储。
网站和数据库的合计大小超过了备份限制 ({0} GB)。 内容大小为 {1} GB。 从备份中排除某些文件,或删除备份的数据库部分,并改用外部提供的备份。
连接到服务器 {1} 上的数据库 {0} 时出错: 使用方法“mysql_native_password”在主机“{1}”中对用户“<用户名>”进行身份验证失败并出现以下消息: 未知的数据库“<db-name>” 更新数据库连接字符串。
无法解析 {0}。 {1} (CannotResolveStorageAccount) 删除备份计划,然后重新配置。
用户“{0}”登录失败。 更新数据库连接字符串。
创建 {0} 数据库副本({1})引发了异常。 无法创建数据库副本。 在连接字符串中使用管理用户。
服务器主体“<名称>”无法在当前安全上下文下访问数据库“master”。 无法打开登录名请求的数据库 "master"。 登录失败。 用户“<名称>”登录失败。 在连接字符串中使用管理用户。
建立与 SQL Server 的连接时,出现网络相关或特定于实例的错误。 找不到或无法访问服务器。 请验证实例名称是否正确,SQL Server 是否已配置为允许远程连接。 (提供程序:命名管道提供程序,错误: 40 - 无法打开到 SQL Server 的连接)。 检查连接字符串是否有效。 在数据库服务器设置中允许应用的出站 IP
无法打开登录时请求的服务器“<名称>”。 登录失败。 检查连接字符串是否有效。
缺少有效共享访问签名的必需参数。 删除备份计划,然后重新配置。
需要 SSL 连接。 请指定 SSL 选项,然后重试。 尝试连接。 数据库备份不支持与 Azure Database for MySQL 和 Azure Database for PostgreSQL 的 SSL 连接。 请改用相应数据库中的本机备份功能。

使用脚本自动化

可以在 Azure CLIAzure PowerShell 中使用脚本自动备份管理。

相关示例如下所示:

常见问题

备份是增量更新还是完整备份?

每个备份都是应用的完整脱机副本,而不是增量更新。

Azure Functions 是否支持自动备份?

自动备份为预览版,适用于专用(应用服务)的“标准”或“高级”层中的 Azure Functions。 自动备份不支持消耗层弹性高级定价层中的函数应用。

自动备份中包含哪些内容?

下表显示了自动备份中备份的内容:

设置 已还原?
Windows 应用:%HOME% 目录下的所有应用内容
Linux 应用:/home 目录下的所有应用内容
自定义容器(Windows 和 Linux):永久性存储中的内容
run-from-ZIP 包的内容
来自任何自定义装载的 Azure 存储(例如 Azure 文件共享)的内容。

下表显示了选择还原应用配置时还原的应用配置:

设置 已还原?
原生日志设置,包括 Azure 存储帐户和容器设置
Application Insights 配置
运行状况检查
网络功能,例如专用终结点混合连接虚拟网络集成
身份验证
托管标识
自定义域
TLS/SSL
横向扩展
Azure Monitor 的诊断
警报和指标
备份
关联的部署槽位
自定义备份支持的任何链接数据库

自定义备份中包含哪些内容?

自定义备份(按需备份或计划备份)包括自动备份中包含的所有内容和配置,以及任何链接的数据库,高达允许的最大大小。

为什么我的链接数据库未备份?

链接的数据库仅针对自定义备份进行备份,高达允许的最大大小。 如果超过最大备份大小 (10 GB) 或超过最大数据库大小 (4 GB),则备份会失败。 下面是链接数据库未备份的一些常见原因:

如果备份大小超过允许的最大值,会发生什么情况?

如果备份大小超过最大大小,则无法还原自动备份。 同样,如果超出最大备份大小或最大数据库大小,则自定义备份会失败。 例如,若要减小存储大小,请考虑将日志、图像、音频和视频等文件移动到 Azure 存储。

是否可以使用启用了安全功能的存储帐户?

自定义备份不支持 Azure 存储中的以下安全功能:

如何还原到其他订阅中的应用?

  1. 对 Azure 存储容器进行自定义备份。
  2. 将备份 ZIP 文件下载到本地计算机。
  3. 在目标应用的“备份”页中,选择顶部菜单中的“还原”。
  4. 在“备份详细信息”中,选择“源”中的“存储”。
  5. 选择首选存储帐户。
  6. 在“Zip 文件”中,选择“上传文件”。
  7. 在“名称”中,选择“浏览”,然后选择下载的 ZIP 文件。
  8. 配置其余部分,例如在还原备份中。

如何还原到位于同一订阅但位于不同区域中的应用?

步骤与如何还原到不同订阅中的应用相同。

后续步骤

Azure Blob 存储文档