有关备份 Azure VM 上运行的 SQL Server 数据库的常见问题解答

本文将会解答有关备份 Azure 虚拟机 (VM) 上运行的 SQL Server 数据库以及使用 Azure 备份服务的常见问题。

备份

是否可以对同一台计算机上的 IaaS VM 和 SQL Server 使用 Azure 备份?

是,可以同时在同一 VM 上进行 VM 备份和 SQL 备份。 对于这种情况,在内部,我们将在 VM 上触发仅限复制的完整备份,以避免截断日志。

解决方案是重试还是自动修复备份?

在某些情况下,Azure 备份服务会触发补救备份。 如果存在以下六种情况中的任何一种,可进行自动修复:

  • 如果日志备份或差异备份因 LSN 验证错误而失败,则下一次日志备份或差异备份将转换为完整备份。
  • 如果在执行日志备份或差异备份之前未执行完整备份,该日志备份或差异备份将转换为完整备份。
  • 如果最新完整备份的时间点超过 15 天,则下一次日志备份或差异备份将转换为完整备份。
  • 由于扩展升级而取消的所有备份作业将在升级完成后重新触发,并且扩展将会启动。
  • 如果在还原期间选择覆盖数据库,则下一次日志/差异备份将会失败,并改为触发完整备份。
  • 如果由于数据库恢复模式发生更改而需要使用完整备份来重置日志链,则会在下一个计划时间自动触发完整备份。

可以取消自动修复备份作业吗?

不可以,不能取消自动修复作业。 不过,你可以执行以下步骤来选择退出它:

  1. 在 SQL Server 实例上的 C:\Program Files\Azure Workload Backup\bin 文件夹中,创建或编辑 ExtensionSettingsOverrides.json 文件。
  2. 在 ExtensionSettingsOverrides.json 文件中,设置 {"EnableAutoHealer": false}
  3. 保存更改并关闭文件。
  4. 在 SQL Server 实例上打开“管理任务”,然后重启“AzureWLBackupCoordinatorSvc”服务。

是否可以控制 SQL Server 上运行的并发备份数?

是的。 可以限制备份策略的运行速率,以尽量减少对 SQL Server 实例的影响。 若要更改设置,请执行以下操作:

  1. 在 SQL Server 实例上的 C:\Program Files\Azure Workload Backup\bin 文件夹中,创建 ExtensionSettingsOverrides.json 文件。

  2. 在 ExtensionSettingsOverrides.json 文件中,将 DefaultBackupTasksThreshold 设置更改为较小的值(例如 5)
    {"DefaultBackupTasksThreshold": 5}
    DefaultBackupTasksThreshold 的默认值为 20

  3. 保存更改并关闭该文件。

  4. 在 SQL Server 实例上,打开“任务管理器”。 重启 AzureWLBackupCoordinatorSvc 服务。

    尽管在备份应用程序消耗大量资源时此方法有所帮助,但使用 SQL Server Resource Governor 可通过更常规的方式来指定传入应用程序请求可以使用的 CPU、物理 IO 和内存量限制。

注意

在 UX 中,仍然可以继续操作并在任何给定时间计划尽可能多的备份。 但是,根据上述示例,它们将在某个滑动窗口(例如 5)中进行处理。

成功的备份作业是否会创建警报?

否。 成功的备份作业不会生成警报。 仅针对失败的备份作业发送警报。 此文介绍了门户警报的详细行为。 但是,如果希望在作业成功的情况下也收到警报,可以使用 Azure Monitor 进行监视

未来的数据库会自动添加备份吗?

是,可以通过自动保护实现此功能。

如果从自动保护的实例中删除数据库,备份会发生什么情况?

如果从自动保护的实例中删除某个数据库,仍会尝试数据库备份。 这意味着,已删除的数据库会开始在“备份项”下面显示为不正常状态,但它仍受保护。

停止保护此数据库的正确方法是针对此数据库执行“停止备份”并删除数据

是否可以保护启用了 Azure 磁盘加密 (ADE) 的虚拟机中的数据库?

是,可以保护启用了 Azure 磁盘加密 (ADE) 的虚拟机中的数据库。

我可否保护启用了 TDE(透明数据加密)的数据库,且数据库是否在整个备份过程中保持加密状态?

可以,Azure 备份支持备份启用了 TDE 的 SQL Server 数据库或服务器。 Azure 备份支持由 Azure 托管密钥的或由客户托管密钥 (BYOK) 的 TDE。 备份过程中不会执行任何 SQL 加密,因此数据库经过备份后将保持加密状态。

Azure 备份是否对数据流执行校验和操作?

我们的确对数据流执行校验和操作。 但这并不会与 SQL 校验和混淆。 Azure 工作负荷备份对数据流计算校验和,并在备份操作过程中将其显式存储。 然后,在还原操作过程中,将此校验和流视为引用并与数据流的校验和进行交叉验证,以确保数据保持一致。

是否可以在同一台计算机上使用 Azure Site Recovery 进行 SQL 计算机和 Azure SQL 数据库备份?

是的。 Azure Site Recovery 将在 VM 上获取“应用程序一致性快照”时触发“仅复制完整备份”,而不会截断日志了解详细信息

管理

“备份作业”菜单中是否会显示计划的备份作业?

“备份作业”菜单显示所有计划的和按需的操作,但计划的日志备份除外,因为它们可能会非常频繁地备份。 对于计划的日志作业,请使用 Azure Monitor 进行监视

如果停止受保护数据库的备份操作,将出现怎样的备份行为?

如果停止备份但保留数据,则将来的备份不会发生,现有的恢复点将保留不变。 数据库仍被视为受保护,并显示在“备份项”下。

如果停止备份并删除数据,则将来的备份不会发生,现有的恢复点也会一并删除。 该数据库被视为不受保护,并显示在“配置备份”边栏选项卡中的实例下。 但是,与其他可以手动选择或者可以自动保护的受保护数据库不同,此数据库将会灰显,并且不可选择。 重新保护此数据库的唯一方法是对该实例禁用自动保护。 接下来可以选择此数据库并对其配置保护,或者对该实例重新启用自动保护。

如果在保护数据库后更改其名称,会出现怎样的行为?

已重命名的数据库被视为新数据库。 因此,服务会将此情况视为找不到数据库,同时会使备份失败。

可以选择现在已重命名的数据库并对其配置保护。 如果对实例启用了自动保护,则会自动检测并保护已重命名的数据库。

为什么不显示自动保护实例的已添加数据库?

添加到自动保护实例的数据库可能不会立即显示在“受保护的项”下。 这是因为发现操作通常每 8 小时运行一次,而实际的系统保护可能需要更长时间,因为这取决于 VM 的大小。 但是,如果按下图所示选择“重新发现 DB”来手动运行发现操作,则可以立即发现新的数据库:

手动发现新添加的数据库的屏幕截图。

还原

在还原为文件期间,是否可以只下载部分文件?

是的,你可以按照此处所述部分下载文件。

在还原为文件期间,是否可将文件下载到未注册的 VM 中?

是的,需要已注册 VM 中的文件路径来下载文件。 该路径也可以是网络共享。 配置从未注册的 VM 到已注册的 VM 的网络共享,然后选择已注册的 VM 作为目标,网络共享作为目标文件路径。 下载文件后,可以简单地从已注册的 VM 中卸载网络共享,这些文件现在在未注册的 VM 中可用。

使用 ExpressRoute 和配置的强制隧道将 Azure 环境连接到本地网络会将所有流量引导到本地网络。 如何配置设置,使 Azure SQL Server 工作负荷备份流量不会通过本地网络并直接连接到恢复服务保管库?

在备份操作期间,备份作业连接到三个服务终结点 - AzureBackupAzureStorageMicrosoft Entra ID。 在此方案中,建议配置 AzureStorage 的服务终结点,这有助于将流量从虚拟网络直接发送到存储。 对于 Azure 备份和 Microsoft Entra ID,你可以通过服务标记配置 UDR,使流量流向主干网络而不是本地。