Compartilhar via

从恢复服务保管库备份多个SQL Server VM

SQL Server 数据库是需要低恢复点目标(RPO)和长期保留的关键业务负载。 可以使用 Azure Backup 备份在 Azure virtual machines(VM)上运行SQL Server数据库。

本文介绍如何将Azure VM 上运行的SQL Server数据库备份到 Azure Backup 恢复服务保管库。

若要查看我们今天支持的备份和还原方案,请参阅 支持矩阵。 有关常见问题,请参阅 常见问题

先决条件

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

  1. 在与托管 SQL Server 实例的虚拟机位于同一区域和订阅中,标识或创建一个 Recovery Services 保管库

  2. 验证 VM 是否具有 network 连接

  3. 确保 VM 上安装 Azure 虚拟机代理

  4. 请确保 VM 上安装 .NET 4.6.2 或更高版本。

    注意

    由于官方支持结束,对运行 .NET Framework 4.6.1 的 SQL VM 备份的支持已被弃用。 建议升级到 .NET Framework 4.6.2 或更高版本,以避免备份失败。

  5. 请确保 SQL Server 数据库遵循 Azure 备份的数据库命名准则

  6. 确保SQL Server VM 名称和资源组名称的总长度不超过 Azure Resource Manager VM 的 84 个字符(或经典 VM 的 77 个字符)。 此限制是因为某些字符由该服务预留。

  7. 检查是否未为该数据库启用了其他任何备份解决方案。 在备份数据库之前禁用所有其他SQL Server备份。

  8. 使用 SQL Server 2008 R2 或 SQL Server 2012 时,可能会遇到有关备份的时区问题,如 here 所述。 请确保使用最新的累积更新,以避免上述的时区相关问题。 如果无法对Azure VM 上的SQL Server实例应用更新,请为虚拟机上的时区禁用夏令时(DST)。

注意事项

可以为Azure VM 启用Azure Backup,也可以为 VM 上运行的SQL Server数据库启用Azure Backup,而不会发生冲突。

建立网络连接

对于所有作,SQL Server VM 需要连接到Azure Backup服务、Azure Storage和Microsoft Entra ID。 这可以通过使用专用终结点或允许access到所需的公共 IP 地址或 FQDN 来实现。 不允许与所需Azure服务建立适当的连接可能会导致数据库发现、配置备份、执行备份和还原数据等作失败。

下表列出了可用于建立连接的各种备选方案:

选项 优点 缺点
专用终结点 允许通过virtual network内的专用 IP 进行备份

提供网络和保管库端的精细控制
产生标准专用终结点 费用
NSG 服务标记 由于范围更改会自动合并,因此更易于管理

无额外成本
仅可与 NSG 配合使用

为整个服务提供访问
Azure Firewall FQDN 标记 由于必需的 FQDN 是自动管理的,因此更容易管理。 只能与Azure Firewall一起使用
允许访问服务的FQDN/IP 无额外成本。

适用于所有网络安全设备和防火墙。

还可以将服务终结点用于 StorageMicrosoft Entra ID。 但是,对于 Azure Backup,需要将访问权限分配给相应的 IP/FQDN。
可能需要访问一组广泛的 IP 或 FQDN。
使用 HTTP 代理 用于虚拟机的单一互联网访问点 通过代理软件运行 VM 带来的额外成本

以下部分提供了有关使用这些选项的更多详细信息。

注意事项

可以使用 Azure Backup 连接测试脚本自行诊断 Windows 环境中的网络连接问题。

专用终结点

专用终结点允许您从虚拟网络内的服务器安全地连接到恢复服务保管库。 专用终结点使用虚拟网络地址空间中的 IP 来为您的保管仓服务。 您的虚拟网络内部资源与保管库之间的网络流量通过您的虚拟网络以及Microsoft主干网中的私有链接进行传输。 这样就消除了来自公共互联网的风险暴露。 阅读有关 Azure Backup 专用端点的详细信息,请点击此处

NSG 标签

如果使用网络安全组(NSG),请使用 AzureBackup 服务标签允许出站访问 Azure Backup。 除了Azure Backup的标签之外,还需要为Microsoft Entra ID和Azure存储(Storage)创建类似的NSG规则,以允许进行身份验证和数据传输的连接。 以下步骤描述为Azure Backup标记创建规则的过程:

  1. 在“所有服务”中转到“网络安全组”,然后选择“网络安全组”。

  2. 在“设置”下选择“出站安全规则”。

  3. 选择 添加 。 根据安全规则设置中所述,输入创建新规则所需的所有详细信息。 请确保将选项“目标”设置为“服务标记”,将“目标服务标记”设置为“AzureBackup”。

  4. 选择“添加”,保存新创建的出站安全规则。

同样,可以为Azure Storage和Microsoft Entra ID创建 NSG 出站安全规则。

Azure Firewall标记

如果使用 Azure Firewall,请使用 AzureBackupAzure Firewall FQDN 标签 创建应用程序规则。 这允许所有出站访问 Azure Backup。

注意事项

Azure Backup目前不支持在 Azure Firewall 上启用 TLS 检查Application Rule

允许访问服务的 IP 范围

如果选择允许访问服务 IP,请参阅 JSON 文件中所提供的 IP 范围此处。 需要允许对应于 Azure Backup、Azure Storage 和 Microsoft Entra ID 的 IP 访问权限。

允许访问服务的完全合格域名 (FQDN)

您还可以使用以下完全限定域名 (FQDN) 来允许您的服务器访问所需的服务:

服务 要访问的域名 端口
Azure Backup *.backup.windowsazure.cn 443
Azure Storage *.blob.core.chinacloudapi.cn

*.queue.core.chinacloudapi.cn

*.blob.storage.chinacloudapi.cn
443
Azure AD *.login.microsoft.com

根据本文的第23节,允许访问FQDN。
443

如果适用

允许内部负载平衡器后面的服务器具有连接性

使用内部负载均衡器时,需要允许处于该负载均衡器之后的虚拟机的出站连接,以执行备份。 因此,可以使用内部和外部标准负载均衡器的组合来创建外部连接。 了解更多有关配置,以便仅为内部负载均衡器的后端池中的 VM 创建仅出站设置。

使用 HTTP 代理服务器路由流量

在 Azure VM 上备份 SQL Server 数据库时,VM 的备份扩展使用 HTTPS API 将管理命令发送到 Azure Backup,并将数据发送到 Azure 存储。 备份扩展还使用Microsoft Entra ID进行身份验证。 通过 HTTP 代理路由这三个服务的备份扩展流量。 使用上面提到的 IP 和 FQDN 列表,以便允许访问所需的服务。 不支持已经过身份验证的代理服务器。

注意事项

在 VM 内禁用 localhost 通信的代理。 代理将用于 SQL VM 的出站通信。

Azure Backup的数据库命名准则

  • 避免在数据库名称中使用以下元素:

    • 尾部和前导空格
    • 尾部感叹号 (!)
    • 右方括号 (])
    • 分号 (;)
    • 正斜杠 (/)
    • 百分比 (%)
  • SQL 备份配置不支持在数据库名称中使用单引号,这会导致部署失败。 如果有任何数据库使用单引号,建议重命名该数据库或采用本机备份方法。

  • 可对不支持的字符使用别名,但我们建议避免这样做。 有关详细信息,请参阅 Understanding the Table Service Data Model(了解表服务数据模型)。

  • 不支持在相同的 SQL 实例上使用大小写不同的多个数据库。

  • 配置保护后,不支持更改 SQL 数据库的大小写。

注意事项

对于名称中包含特殊字符(如 {'}[],=-().+&;')的数据库,不支持“配置保护”操作/。 可以更改数据库名称,或启用“自动保护”,这样就可以成功保护这些数据库。

创建恢复服务保管库

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

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

  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

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

  4. 选择虚拟机窗格中,选择运行SQL Server数据库的 VM,然后选择发现 DB

    Screenshot 显示运行未受保护的 SQL 数据库的 VM 的列表。

    注意事项

    • 发现后,未受保护的 VM 应会按名称和资源组列在列表中。
    • 如果某个 VM 未按预期列出,请查看它是否已在保管库中备份。
    • 可能有多个 VM 同名,但它们属于不同的资源组。

可以在 通知中跟踪数据库发现。 完成此操作所需的时间取决于 VM 数据库的数量。 发现选定的数据库后,会显示一条成功消息。

Screenshot 显示部署成功消息.

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 权限。 在市场中创建的所有SQL Server VM 都安装了 SqlIaaSExtension。 AzureBackupWindowsWorkload 扩展使用 SQLIaaSExtension 自动获取所需的权限。
  • 如果未从 Marketplace 创建 VM,或者使用的是 SQL 2008 和 2008 R2,则 VM 可能未安装 SqlIaaSExtension,并且检测操作失败,并显示错误消息 UserErrorSQLNoSysAdminMembership。 若要解决此问题,请按照 设置 VM 权限下的说明进行作。

     选择 VM 和数据库

配置备份

若要配置 SQL 数据库备份,请执行以下步骤:

  1. “备份目标 ”窗格的 “步骤 2:配置备份”下,选择“ 配置备份”。

    截图显示配置备份的选择。

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

     选择添加资源

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

    选择要备份的项

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

    保护数据库

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

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

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

      注意事项

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

  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 日。

启用自动保护

可以启用自动保护,将所有现有数据库和将来的数据库自动备份到独立SQL Server实例或Always On可用性组。

  • 可以一次性选择进行自动保护的数据库数目没有限制。 发现通常每 8 小时运行一次。 将在 32 小时内触发对新发现的数据库的自动保护。 但是,如果通过选择“重新发现数据库”选项来手动运行发现,则可以立即发现并保护新的数据库。
  • 如果对新发现的数据库执行的自动保护操作失败,将重试三次。 如果所有三次重试都失败,数据库将不受保护。
  • 启用自动保护时,无法选择在实例中保护数据库,或者在实例中排除对其的保护。
  • 如果实例已包含某些受保护的数据库,即使在启用自动保护后,它们也仍会根据相应的策略受到保护。 以后添加的所有不受保护的数据库只会应用在启用自动保护时定义的、在“配置备份”下列出的单个策略。 但是,以后可以更改与自动保护的数据库关联的策略。
  • 如果新发现的数据库的“配置保护”操作失败,不会引发警报。 但是,可以在“备份作业”页上找到失败的备份作业。

若要启用自动保护:

  1. 在“要备份的项”中,选择要为其启用自动保护的实例。

  2. 选择“自动保护”下的下拉列表,选择“打开”,然后选择“确定”。

    启用可用性组的自动保护

  3. 备份是针对所有数据库统一配置的,可以在“备份作业”中跟踪备份。

如果需要禁用自动保护,请选择“配置备份”下的实例名称,然后针对该实例选择“禁用自动保护”。 所有数据库将继续备份,但将来的数据库不会自动受到保护。

禁用该实例的自动保护功能

后续步骤

了解如何去做以下事情: