Compartilhar via

教程:在 Azure VM 上备份SQL Server数据库

本教程介绍如何将Azure虚拟机(VM)上运行的SQL Server数据库备份到 Azure Backup 恢复服务保管库。

在本教程中,你将使用Azure portal来:

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

先决条件

  • 标识或创建与承载 SQL Server 实例的 VM 位于同一区域或地理位置中的恢复服务保管库。
  • 检查备份SQL Server数据库所需的 VM 权限
  • 验证 VM 是否具有 network 连接
  • 请检查您的 SQL Server 数据库是否依据 Azure Backup 的命名准则进行命名。
  • 验证是否未为该数据库启用了其他任何备份解决方案。 设置此方案之前,请禁用所有其他SQL Server备份。 可以为Azure VM 启用Azure Backup,并为 VM 上运行的SQL Server数据库启用Azure Backup,而不会发生任何冲突。

创建恢复服务保管库

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

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

  1. 登录到 Azure portal

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

    显示搜索并选择“备份中心”的位置的屏幕截图。

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

    用于创建恢复服务保管库的按钮的屏幕截图。

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

    屏幕截图显示如何选择“恢复服务”作为保管库类型。

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

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

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

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

    • 区域:为保管库选择地理区域。 若要创建保管库以帮助保护任何数据源,保管库 必须与 数据源位于同一区域。

      重要

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

      显示用于配置恢复服务保管库的字段的屏幕截图。

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

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

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

    显示用于刷新备份保管库列表的按钮的屏幕截图。

Azure Backup现在支持不可变保管库,可帮助确保在创建恢复点后,无法根据备份策略在到期之前删除它们。 你可以使不可变性不可逆,以帮助保护备份数据免受各种威胁,包括勒索软件攻击和恶意参与者。 详细了解Azure Backup不可变保管库

发现SQL Server数据库

若要发现 VM 上运行的数据库,请执行以下步骤:

  1. Azure portal 中,转到 backup 中心并单击+Backup

  2. 在 Azure VM 中选择 SQL 作为数据源类型,选择已创建的恢复服务保管库,然后单击 Continue

    截取图显示选择备份以查看在 VM 中运行的数据库。

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

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

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

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

      在虚拟机中搜索数据库时,备份挂起

  4. 在 VM 列表中,选择运行 SQL Server 数据库 >发现 DB的 VM。

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

    部署成功消息

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

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

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

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

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

       选择 VM 和数据库

配置备份

按如下所述配置备份:

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

    选择配置备份

  2. 选择 Add Resources 以查看所有已注册的可用性组和独立SQL Server实例。

     选择添加资源

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

    选择要备份的项

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

    保护数据库

    若要优化备份加载,Azure Backup将一个备份作业中的最大数据库数设置为 50。

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

    • 若要启用整个实例或Always On可用性组,在AUTOPROTECT下拉列表中,选择ON,然后选择OK

      注释

      auto-protection功能不仅可同时对所有现有数据库启用保护,而且还会自动保护添加到该实例或可用性组的任何新数据库。

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

    • 选择 HourlyLogBackup 作为默认策略

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

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

      选择备份策略

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

    跟踪配置进度

创建备份策略

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

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

创建备份策略:

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

  2. 在 Azure VM 中选择 SQL Server 作为数据源类型,选择应在其中创建策略的保管库,然后单击Continue

    截图显示如何为新备份策略选择备份策略类型。

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

    截图显示输入策略名称。

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

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

    Screenshot 显示新的备份策略字段.

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

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

    此屏幕截图显示了保留范围间隔设置。

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

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

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

    屏幕截图显示差异备份策略。

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

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

    屏幕截图显示日志备份策略。

  9. 在“备份策略”菜单中,选择是否启用“SQL 备份压缩”。 默认情况下该选项处于禁用状态。 如果启用,SQL Server会将压缩的备份流发送到 VDI。 Azure Backup使用 COMPRESSION/NO_COMPRESSION 子句替代实例级别默认值,具体取决于此控件的值。

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

注释

日志备份和差异备份链接到以前的完整备份,形成恢复链。 完整备份将保留到上次依赖备份(日志或差异)的保留期到期。 此行为可能意味着将完整备份保留一段时间,以确保可以恢复所有依赖备份。

假设你有每周完整备份、每日差异日志和 2 小时日志。 这些备份都保留 30 天。 但是,只有在下一次完整备份可用后,才能清理或删除每周完整备份;即 30 + 7 天后。

例如,每周完整备份发生在 11 月 16 日。 根据保留策略,此备份应保留到 12 月 16 日。 上次日志备份发生在 11 月 22 日下一次计划的完整备份之前。 在 12 月 22 日提供此日志备份之前,无法删除 11 月 16 日的完整备份。 因此,11 月 16 日的完整备份将保留到 12 月 22 日。 相同的逻辑适用于差异备份:如果每日差异备份保留期为 30 天,则在 12 月 22 日下一次完整备份(11 月 22 日)之前执行的最后一个差异将在 12 月 22 日到期,因此 11 月 16 日的完整备份也将保留到 12 月 22 日。

如果备份处于软删除状态,则应用相同的链接和保留依赖项。 软删除的备份会在策略保留期之外再保留 14 天,之后才会被永久删除。

运行按需备份

  1. 在恢复服务保管库中,选择备份项。

  2. 在 Azure VM 中选择 SQL

  3. 右键单击数据库,然后选择“ 立即备份”。

  4. 选择备份类型:

    • 按需全量备份 至少保留 45 天,最多保留 99 年。
    • “按需全量复制”接受任何保留值。
    • 按需差异备份 根据策略中设定的计划保留备份。
    • 按需日志 将根据策略中设置的计划日志保留规则来保留备份。
  5. 选择是启用或禁用压缩。

  6. 选择 “确定 ”开始备份。

  7. 前往你的恢复服务保管库并选择 “备份作业”以监控备份作业。

后续步骤

继续学习下一教程,从磁盘还原Azure虚拟机: