卸载可用性组次要副本的支持备份

适用于:SQL Server

Always On 可用性组 活动辅助功能包括支持在次要副本上进行备份。 备份操作可能会给 I/O 和 CPU 带来很大的压力(使用备份压缩)。 将备份负荷转移到已同步或正在同步的辅助副本后,您可以使用承载第一层工作负荷的主副本的服务器实例上的资源。

注意

可用性组的主数据库或辅助数据库不允许使用 RESTORE 语句。

辅助副本支持的备份类型

若要对辅助副本执行完整数据库备份,必须执行 仅复制备份,因为仅复制备份不会影响日志链或清除差异位图。 请考虑以下事项:

  • 仅复制备份不会阻止在其他副本上截断事务日志。

  • 仅复制备份在执行期间,会阻止辅助副本上的日志截断。

  • 如果将主副本服务器上的事务日志截断为执行仅复制备份的辅助副本服务器事务日志的第一个和最后一个 LSN 之间的 LSN,则可能会在辅助副本服务器的日志中遇到以下错误:

    Error 9019: The virtual log file sequence 0x%08x at offset 0x%016I64x bytes in file '%ls' is active and cannot be overwritten with sequence 0x%08x for database '%ls'.

    虽然备份可能会成功,但在仅供备份完成之前,次要副本的同步会失败。如果辅助副本设置为同步提交,则主副本上的写入负载可能会被阻塞,直到日志能够在次要副本上完成硬化。 备份完成后,日志将在次要副本上被截断,此时它应再次进行同步。 如果在次要副本上运行仅复制备份时遇到错误 9019,请改为在主副本上运行完整备份。

在次要副本上执行备份时,请考虑以下事项:

  • 若要备份辅助数据库,辅助副本必须能够与主副本通信,并且必须是 SYNCHRONIZEDSYNCHRONIZING 状态。
  • 不支持在次要副本上执行差异备份。
  • 当前不支持并发备份,例如,在辅助副本上执行完整数据库备份的同时在主副本上执行事务日志备份。
  • BACKUP LOG 仅支持常规日志备份(辅助副本上的日志备份不支持COPY_ONLY选项)。 对于在任何副本(主副本或辅助副本)上进行的日志备份之间,确保一致的日志链,而与其可用性模式(同步提交或异步提交无关)。

分布式可用性组中,可以在与活动主副本位于同一可用性组中的次要副本或任何辅助可用性组的主副本上执行备份。 无法对辅助可用性组中的辅助副本执行备份,因为辅助副本仅与其自己的可用性组中的主副本通信。 仅直接与全局主要副本通信的副本才能执行备份操作。

SQL Server 2025 的新增功能

从 SQL Server 2025 (17.x) 预览版开始,除了仅复制备份外,还可以在任何次要副本上执行完整备份和差异备份。

使用以下跟踪标志在次要副本上启用备份:

在可用性组中的每个副本(包括主副本)上启用相关的跟踪标志,以确保在故障转移后辅助副本可以继续进行备份。

例如,若要在次要副本上启用差异备份,请运行以下命令:

DBCC TRACEON (3261, -1);

注意

完整备份和差异备份处于预览状态,目前仅在 SQL Server 2025(17.x) 预览版中可用。

配置备份作业运行位置

在辅助副本上执行备份以减轻主生产服务器的备份工作负荷非常有好处。 但是,对辅助副本执行备份会显著增加用于确定应在何处运行备份作业的过程的复杂性。 要解决这个问题,请按如下所示配置备份作业运行的位置:

  1. 配置可用性组以便指定要对其执行备份的可用性副本。 有关详细信息,请参阅AUTOMATED_BACKUP_PREFERENCEBACKUP_PRIORITY参数,这些参数位于CREATE AVAILABILITY GROUPALTER AVAILABILITY GROUP中。

  2. 为承载作为执行备份候选的可用性副本的每个服务器实例上的每个可用性数据库都创建编写了脚本的备份作业。 有关详细信息,请参阅Always On 可用性组的次要副本上配置备份的“后续步骤:在次要副本上配置备份后”部分。