管理自动备份 - Azure Arc 启用的 SQL Server(预览版)

适用于:SQL Server

适用于 SQL Server 的 Azure 扩展可以为 Azure Arc 启用的 SQL Server 实例的系统和用户数据库自动执行备份。

本文介绍了如何执行以下操作:

  • 启用这些内置自动备份
  • 配置备份计划

注意

作为预览版功能,本文中介绍的技术受制于 Microsoft Azure 预览版补充使用条款

发行说明 – 已启用 Azure Arc 的 SQL Server 中提供了最近的更新。

备份文件存储在 SQL 实例的默认备份位置。

可通过 Azure 门户或 az CLI 启用自动备份。

要启用自动备份,请将保留天数设置为非零值。

支持的许可证类型

自动备份仅适用于具有软件保障、SQL 订阅或即用即付的许可证。 有关详细信息,请参阅功能可用性取决于许可证类型

备份频率和保留天数

可以为自动备份配置以下两个属性:

  • 保留天数 - 保留备份文件的天数。 使用介于 1 和 35 之间的数字。 如果备份保留日期设置为 0,则会禁用自动备份,且不会进行备份,即使保留备份策略也是如此。
  • 备份计划 - 应执行完整备份、差异备份和事务日志备份的计划。 取决于备份类型:
    • 完整备份:每日或每周
    • 差异备份:每 12 小时或每 24 小时
    • 事务日志备份:每 5 分钟递增。

还可以按默认计划运行备份:

  • 保持期:7 天
  • 完整备份:每 7 天运行一次
  • 差异备份:每 24 小时运行一次
  • 事务日志备份:每 5 分钟

备份计划级别

可以在以下级别计划备份:

如果同时设置了数据库级别和实例级别备份计划,数据库级别计划会优先于实例级别备份计划。 如果删除数据库级别备份计划,则会应用实例级别备份计划。

分配权限

适用于已启用 Arc 的 SQL Server 的 Azure 扩展中的备份服务使用 [NT AUTHORITY\SYSTEM] 帐户执行备份。 如果以最低权限运行 Arc 启用的 SQL Server,则本地 Windows 帐户 ([NT Service\SQLServerExtension]) 执行备份。

注意

如果 Azure 扩展为版本 1.1.2594.118(2024 年 2 月版本)或更高版本,则最低特权模式将在未来几个月自动启用。

如果对 SQL Server 版本 1.1.2504.99 或更高版本使用 Azure 扩展,则会自动向 [NT AUTHORITY\SYSTEM] 授予必要的权限。 不需要手动分配权限。

仅对于早期扩展,请按照以下步骤将权限分配给 [NT AUTHORITY\SYSTEM] 帐户。

注意

此要求适用于预览版。

  1. [NT AUTHORITY\SYSTEM] 帐户添加到登录,并在服务器级别使其成为 dbcreator 服务器角色的成员。 运行以下 Transact-SQL 以添加此帐户:

    USE master;
    GO
    CREATE LOGIN [NT AUTHORITY\SYSTEM] FROM WINDOWS WITH DEFAULT_DATABASE = [master];
    GO
    ALTER SERVER ROLE [dbcreator] ADD MEMBER [NT AUTHORITY\SYSTEM];
    GO
    
  2. [NT AUTHORITY\SYSTEM] 帐户添加到用户,并使其成为 mastermodelmsdb 和每个用户数据库中的 db_backupoperator 角色的成员。

    例如:

    CREATE USER [NT AUTHORITY\SYSTEM] FOR LOGIN [NT AUTHORITY\SYSTEM];
    GO
    ALTER ROLE [db_backupoperator] ADD MEMBER [NT AUTHORITY\SYSTEM];
    GO
    
  3. 为每个用户和系统数据库运行上述代码(除 tempdb 以外)。

配置自动执行的备份

默认情况下,自动备份处于禁用状态。

分配权限后,可以计划自动备份。 配置自动备份后,Arc SQL 扩展启用备份到默认备份位置。

备份是本机 SQL Server 备份,这意味着 msdb 数据库中的备份相关表中会包含所有备份历史记录。

实例级别

若要在 Azure 门户中启用自动备份,请执行以下操作:

  1. 禁用任何现有外部备份例程。
  2. 浏览到要为其启用自动备份的 SQL Server。
  3. 选择“备份”。
  4. 选择“配置策略”。
  5. 在“配置策略”:
    • 设置备份保留天数的值 - 介于 1 到 35 之间。
    • 设置完整备份、差异备份和事务日志备份的计划。
  6. 选择“应用”以启用此配置。

设置保留期和频率以满足业务需求。 保留策略应该大于完整备份频率。 作为一项安全措施,自动备份过程始终保留至少一个完整备份频率和保留天数的备份集。

数据库级别

要在门户中配置单个自定义数据库级别备份,请执行以下操作:

  1. 选择实例
  2. 选择数据库
  3. 在左侧的“数据管理”
  4. 选择“备份(预览版)- 配置数据库备份策略(预览版)”
  5. 选择“配置策略”。
  6. 在“配置策略”:
    • 设置备份保留天数的值 - 介于 1 到 35 之间。
    • 设置完整备份、差异备份和事务日志备份的计划。
  7. 选择“应用”以启用此配置。

设置保留期和频率以满足业务需求。 保留策略应该大于完整备份频率。 作为一项安全措施,自动备份过程始终保留至少一个完整备份频率和保留天数的备份集。

禁用自动备份

如果备份保留日期设置为 0,则会禁用自动备份,且不会进行备份,即使保留备份策略也是如此。 将备份保留期设置为非零值会再次启用策略。

此设置同时适用于数据库和实例级别备份。 如果禁用数据库级别备份计划,则即使计划了实例级别备份,也不会为数据库创建任何备份。

删除自动备份

在单个数据库级别备份计划页的门户,选择“将备份策略还原到实例级别”即可删除数据库级别备份策略。

可通过 CLI 删除实例级别备份计划。 删除后,不会在实例级别或数据库级别进行备份。 必须配置新的备份计划以再次执行备份。

删除实例级别策略

az sql server-arc backups-policy delete --name <arc-server-name> --resource-group <resourcegroup> 

示例:

az sql server-arc backups-policy delete --name MyArcServer_SQLServerPROD --resource-group MyResourceGroup  

删除数据库级别策略

az sql db-arc backups-policy delete --name <sql-database-name> --server <arc-server-name> --resource-group <resourcegroup> 

示例:

az sql db-arc backups-policy delete --name MyDatabaseName --server MyArcServer_SQLServerPROD --resource-group MyResourceGroup 

查看当前备份策略

要查看 SQL Server 的当前备份策略,请运行以下命令:

az sql server-arc backups-policy show --name <arc-server-name> --resource-group <resourcegroup>

示例:

az sql server-arc backups-policy show --name MyArcServer_SQLServerPROD --resource-group MyResourceGroup

输出:

{
  "differentialBackupHours": 24,
  "fullBackupDays": 7,
  "instanceName": "MSSQLSERVER01",
  "retentionPeriodDays": 16,
  "transactionLogBackupMinutes": 5
}

备份系统数据库

在 Azure Arc 启用的 SQL Server 的实例上启用内置自动备份后,系统数据库也会备份到默认备份位置。 系统数据库仅执行完整备份。

注意事项

  • 备份文件将存储在 SQL Server 实例级别配置的默认备份位置。

  • 要在 SQL Server 实例(SQL Server 2019 [15.x] 及更高版本)上查找默认备份位置,请运行:

    SELECT SERVERPROPERTY('InstanceDefaultBackupPath');
    
  • 对于低于 2019 的 SQL Server 版本,默认备份路径存储在注册表设置中。 使用扩展存储过程 xp_instance_regwrite 或从 SQL Server Management Studio (SSMS) 配置此设置。 使用 SSMS:

    1. 从 SSMS 连接到已启用 Arc 的 SQL Server。
    2. 转到“服务器属性”>“数据库设置”>“数据库默认位置”。
  • 备份策略在实例级别配置,并应用于实例上的所有数据库。

  • 如果同时设置了数据库级别和实例级别备份计划,数据库级别计划会优先于实例级别备份计划。 删除数据库级别备份计划会还原到实例级别备份计划(如果有)。

  • --name 的值为 Azure Arc 启用的 SQL Server 的名称,通常采用 [Servername_SQLservername] 格式。

  • --retention-days 的值可以为 0-35。

  • --retention-days 的值为 0 表示不对实例或数据库执行自动备份。

  • 如果同一主机上有多个安装了适用于 SQL Server 的 Azure 扩展的 SQL Server 实例,则需要为每个实例配置自动备份。

  • 如果在配置 --backups-policy 后更改 --retention-days,则任何更改都在以后生效,并且不会追溯应用。

限制

  • 用户数据库需要处于完整恢复模式才能执行备份。 未处于完整恢复模式的数据库不会自动备份。
  • 目前不支持自动备份“始终可用”故障转移群集 (FCI)。
  • 托管可用性组 (AG) 副本的任何实例都不支持自动备份。
  • 自动备份仅适用于具有软件保障、SQL 订阅或即用即付的许可证。 有关详细信息,请参阅功能可用性取决于许可证类型