在 Azure VM 中备份 SQL Server 数据库

本教程介绍如何将 Azure VM 上运行的 SQL Server 数据库备份到 Azure 备份恢复服务保管库。 在本文中,学习如何:

  • 创建并配置保管库。
  • 发现数据库并设置备份。
  • 为数据库设置自动保护。
  • 运行按需备份。

先决条件

在备份 SQL Server 数据库之前,请检查以下条件:

  1. 在托管 SQL Server 实例的 VM 所在的区域或位置标识或创建一个恢复服务保管库。
  2. 检查备份 SQL 数据库所需的 VM 权限
  3. 验证 VM 是否已建立网络连接
  4. 检查是否根据 Azure 备份的命名准则命名了 SQL Server 数据库。
  5. 验证是否未为该数据库启用了其他任何备份解决方案。 在设置此方案之前,请禁用其他所有 SQL Server 备份。 可以同时针对某个 Azure VM 以及该 VM 上运行的 SQL Server 数据库启用 Azure 备份,而不会发生任何冲突。

创建恢复服务保管库

恢复服务保管库是一个管理实体,它会存储一段时间内创建的恢复点,并提供用于执行备份相关操作的接口。 这些操作包括按需备份、执行还原和创建备份策略。

若要创建恢复服务保管库,请执行以下操作:

  1. 登录 Azure 门户

  2. 搜索“备份中心”,然后转到“备份中心”仪表板。

    Screenshot that shows where to search for and select 'Backup center'.

  3. 在“概述”窗格中选择“保管库”。

    Screenshot of the button for creating a Recovery Services vault.

  4. 选择“恢复服务保管库”>“继续” 。

    Screenshot that shows where to select Recovery Services as the vault type.

  5. 在“恢复服务保管库”窗格中输入以下值:

    • 订阅:选择要使用的订阅。 如果你仅是一个订阅的成员,则会看到该名称。 如果不确定要使用哪个订阅,请使用默认订阅。 仅当工作或学校帐户与多个 Azure 订阅关联时,才会显示多个选项。

    • 资源组:使用现有资源组,或创建一个新的资源组。 若要查看订阅中可用的资源组的列表,请选择“使用现有资源”,然后从下拉列表中选择一个资源。 若要创建新的资源组,请选择“新建”并输入新资源组的名称。 有关资源组的详细信息,请参阅 Azure 资源管理器概述

    • 保管库名称:输入一个易记名称,用于标识此保管库。 名称对于 Azure 订阅必须是唯一的。 指定的名称应至少包含 2 个字符,最多不超过 50 个字符。 名称必须以字母开头且只能包含字母、数字和连字符。

    • 区域:为保管库选择地理区域。 若要创建保管库来保护任何数据源,该保管库必须位于数据源所在的区域。

      重要

      如果不确定数据源的位置,请关闭该窗口。 在门户中访问你的资源列表。 如果数据源位于多个区域中,请为每个区域创建恢复服务保管库。 先在第一个位置创建保管库,然后再在其他位置中创建保管库。 无需指定存储帐户即可存储备份数据。 恢复服务保管库和 Azure 备份会自动处理这种情况。

    Screenshot that shows fields for configuring a Recovery Services vault.

  6. 提供值后,选择“查看 + 创建”。

  7. 要完成恢复服务保管库的创建,请选择“创建”。

    创建恢复服务保管库可能需要一段时间。 可在右上方的“通知”区域监视状态通知。 创建保管库后,它会显示在“恢复服务保管库”的列表中。 如果没有显示保管库,请选择“刷新”。

    Screenshot that shows the button for refreshing the list of backup vaults.

注意

Azure 备份现在支持不可变保管库,可帮助确保恢复点一旦创建就无法根据备份策略在到期前将其删除。 可以将不可变性设为不可逆转,以最大限度地保护备份数据免受各种威胁,包括勒索软件攻击和恶意行动者。 了解详细信息

发现 SQL Server 数据库

发现 VM 上运行的数据库。

  1. Azure 门户中,转到“备份中心”,然后单击“+ 备份”。

  2. 选择“Azure 虚拟机中的 SQL”作为“数据源类型”,选择已创建的恢复服务保管库,然后单击“继续”。

    Screenshot showing to select Backup to view the databases running in a VM.

  3. 在“备份目标”>“发现 VM 中的数据库”中,选择“开始发现”以搜索订阅中不受保护的 VM。 搜索过程需要花费一段时间,具体取决于订阅中不受保护的虚拟机数量。

    • 发现后,未受保护的 VM 应会按名称和资源组列在列表中。

    • 如果某个 VM 未按预期列出,请检查它是否已保管库中备份。

    • 可能有多个 VM 同名,但它们属于不同的资源组。

      Backup is pending during search for DBs in VMs

  4. 在 VM 列表中,选择运行 SQL Server 数据库的 VM,然后选择“发现数据库”。

  5. 在“通知”区域跟踪数据库发现。 完成该作业可能需要一段时间,具体取决于 VM 上的数据库数量。 发现选定的数据库后,会显示一条成功消息。

    Deployment success message

  6. Azure 备份将发现该 VM 上的所有 SQL Server 数据库。 在发现期间,后台将发生以下情况:

    • Azure 备份将 VM 注册到用于备份工作负荷的保管库。 已注册 VM 上的所有数据库只能备份到此保管库。

    • Azure 备份在 VM 上安装 AzureBackupWindowsWorkload 扩展。 不会在 SQL 数据库中安装任何代理。

    • Azure 备份在 VM 上创建服务帐户 NT Service\AzureWLBackupPluginSvc

      • 所有备份和还原操作使用该服务帐户。
      • NT Service\AzureWLBackupPluginSvc 需要 SQL sysadmin 权限。 在 Azure 市场中创建的所有 SQL Server VM 已预装 SqlIaaSExtension。 AzureBackupWindowsWorkload 扩展使用 SQLIaaSExtension 自动获取所需的权限。
    • 如果 VM 不是从市场创建的,则该 VM 上未安装 SqlIaaSExtension,并且发现操作将会失败并出现错误消息 UserErrorSQLNoSysAdminMembership。 请按照说明解决此问题。

      Select the VM and database

配置备份

按如下所述配置备份:

  1. 在“备份目标”>“步骤 2: 配置备份”中,选择“配置备份”。

    Select Configure Backup

  2. 选择“添加资源”,查看所有已注册的可用性组和独立的 SQL Server 实例。

    Select add resources

  3. 在“选择要备份的项中”,选择行左侧的箭头,展开该实例或 Always On 可用性组中所有不受保护的数据库的列表。

    Select items to backup

  4. 选择要保护的所有数据库,然后选择“确定”。

    Protecting the database

    为了优化备份负载,Azure 备份会将一个备份作业中的最大数据库数目设置为 50。

    • 若要对 50 个以上的数据库提供保护,请配置多个备份。

    • 若要启用整个实例或 Always On 可用性组,请在“自动保护”下拉列表中选择“打开”,然后选择“确定”。

      注意

      自动保护功能不仅可以一次性针对所有现有数据库启用保护,而且还会自动保护添加到该实例或可用性组的所有新数据库。

  5. 定义备份策略。 可以执行以下操作之一:

    • 选择 HourlyLogBackup 作为默认策略。

    • 选择前面为 SQL 创建的现有备份策略。

    • 根据 RPO 和保留范围定义新策略。

      Select Backup policy

  6. 选择“启用备份”以提交“配置保护”操作,并在门户的“通知”区域中跟踪配置进度 。

    Track configuration progress

创建备份策略

备份策略定义备份创建时间以及这些备份的保留时间。

  • 策略是在保管库级别创建的。
  • 多个保管库可以使用相同的备份策略,但必须向每个保管库应用该备份策略。
  • 创建备份策略时,每日完整备份是默认设置。
  • 可以添加差异备份,但仅在将完整备份配置为每周发生时,才能这样做。
  • 了解不同类型的备份策略

创建备份策略:

  1. 转到“备份中心”,然后单击“+ 策略”。

  2. 选择“Azure 虚拟机中的 SQL Server”作为数据源类型,选择应在其下创建策略的保管库,然后单击“继续”。

    Screenshot showing to choose a policy type for the new backup policy.

  3. 在“策略名称”处输入新策略的名称。

    Screenshot to showing to enter policy name.

  4. 选择“完整备份”对应的“编辑”链接以修改默认设置 。

    • 选择“备份频率”。 选择“每日”或“每周”。
    • 如果选择“每日”,请选择备份作业开始时的小时和时区。 对于每日完整备份,无法创建差异备份。

    Screenshot showing new backup policy fields.

  5. 对于“保留范围”,默认已选择所有选项。 清除任何不需要的保留范围限制,然后设置要使用的间隔。

    • 任何类型的备份(完整、差异和日志)的最短保留期均为七天。
    • 恢复点已根据其保留范围标记为保留。 例如,如果选择每日完整备份,则每天只触发一次完整备份。
    • 根据每周保留范围和每周保留设置,将会标记并保留特定日期的备份。
    • 每月和每年保留范围的行为类似。

    Screenshot showing the retention range interval settings.

  6. 选择“确定”接受设置来进行完整备份。

  7. 选择“差异备份”对应的“编辑”链接以修改默认设置 。

    • 在“差异备份策略”中,选择“启用”打开频率和保留控件。
    • 每天只能触发一次差异备份。 不能在执行完整备份的同一天触发差异备份。
    • 差异备份最多可以保留 180 天。
    • 差异备份保持期不能大于完整备份的日期(因为差异备份依赖于完整备份进行恢复)。
    • Master 数据库不支持差异备份。

    Screenshot showing the differential Backup policy.

  8. 选择“日志备份”对应的“编辑”链接以修改默认设置

    • 在“日志备份”中选择“启用”,并设置频率和保留控件。
    • 日志备份最多可以每隔 15 分钟发生一次,最多可以保留 35 天。
    • 如果数据库处于简单恢复模式中,则该数据库的日志备份计划将暂停,因此不会触发日志备份。
    • 如果数据库的恢复模式从“完整”更改为“简单”,则日志备份将在恢复模式更改后的 24 小时内暂停 。 同样,如果恢复模式从“简单”更改为其他模式,则表示数据库现在支持日志备份,日志备份计划将在恢复模式更改后的 24 小时内启用。

    Screenshot showing the log Backup policy.

  9. 在“备份策略”菜单中,选择是否启用“SQL 备份压缩” 。 默认已禁用此选项。 如果启用,SQL Server 会向 VDI 发送压缩的备份流。 Azure 备份将根据此控件的值,使用 COMPRESSION / NO_COMPRESSION 子句替代实例级别的默认值。

  10. 完成备份策略的编辑后,选择“确定”。

注意

每个日志备份都链接到上一个完整备份,以形成恢复链。 此完整备份将一直保留到最后一个日志备份的保留期结束为止。 这可能意味着完整备份会保留一段额外的时间,以确保所有日志都可以恢复。 假设你有每周完整备份、每日差异备份和 2 小时日志备份。 所有这些备份都将保留 30 天。 但是,只有在下一个完整备份可用后(即 30 + 7 天后),才能真正清除/删除这个每周完整备份。 例如,每周完整备份在 11 月 16 日执行。 根据保留策略,它应保留到 12 月 16 日。 该完整备份的最后一次日志备份发生在下一次计划的完整备份之前,即 11 月 22 日。 必须等到 12 月 22 日此日志备份可用后,才能删除 11 月 16 日的完整备份。 因此,11 月 16 日的完整备份将保留到 12 月 22 日。

运行按需备份

  1. 在恢复服务保管库中,选择“备份项目”。
  2. 选择“Azure VM 中的 SQL”。
  3. 右键单击数据库,并选择“立即备份”。
  4. 选择“备份类型”(完整/差异/日志/仅复制完整)和“压缩”(启用/禁用)。
    • “按需完整备份”将备份保留最少 45 天,最多 99 年。
    • “按需仅复制完整备份”接受任何值进行保留。
    • “按需差异备份”根据策略中设置的计划差异保留来保留备份。
    • “按需日志备份”根据策略中设置的计划日志保留来保留备份。
  5. 选择“确定”,开始备份。
  6. 通过转到恢复服务保管库并选择“备份作业”来监视备份作业。

后续步骤

本教程使用 Azure 门户执行了以下操作:

  • 创建并配置保管库。
  • 发现数据库并设置备份。
  • 为数据库设置自动保护。
  • 运行按需备份。

继续阅读下一教程,学习如何从磁盘还原 Azure 虚拟机。