有关备份 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)中进行处理。

是否可以从次要副本运行完整备份?

根据 SQL 限制,可以针对次要副本运行“仅限复制的完整备份”。 但不能运行“完整备份”。

是否可以保护本地的可用性组?

否。 Azure 备份可以保护 Azure 中运行的 SQL Server 数据库。 如果可用性组 (AG) 分散在 Azure 与本地计算机之间,则仅当主要副本在 Azure 中运行时,才可以保护 AG。 此外,Azure 备份只能保护恢复服务保管库所在的同一 Azure 区域中运行的节点。

是否可跨区域保护可用性组?

Azure 备份恢复服务保管库可以检测并保护保管库所在的同一区域中的所有节点。 如果 SQL Server Always On 可用性组跨多个 Azure 区域,请从包含主要节点的区域设置备份。 Azure 备份可根据备份首选项检测并保护可用性组中的所有数据库。 如果不符合备份优先顺序,备份将会失败,并出现失败警报。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

添加到自动保护实例的数据库可能不会立即显示在“受保护的项”下。 这是因为,发现功能通常每隔 8 小时运行一次。 但是,如果按下图所示选择“重新发现数据库”来手动运行发现,则可以立即发现并保护新的数据库:

手动发现新添加的数据库

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

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

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

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

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

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