使用长期保留策略保留备份历史记录

已完成

公司需要将备份保留数月或数年,以进行常规的管理保护,比如还原意外删除的数据。

例如,至少有一个国家/地区的数据保护法要求你的零售组织将所有客户交易的记录保留 5 年。 你需要确保 Azure SQL 数据库中的数据(它们是企业资源规划 (ERP) 系统的基础)至少保留那么长时间。

现在,让我们来了解 Azure SQL 数据库中的长期保留策略,以及在需要将备份保留超过 35 天时如何使用这些策略。

长期备份保留策略

Azure SQL 数据库自动备份最多可在 35 天内还原。 此时间段足以进行日常管理。 但有时可能需要将数据保留更长的时间。 例如,你所在辖区的数据保护法规可能要求你将备份保留数年。

对于这些要求,请使用长期保留 (LTR) 功能。 这样,你可以将 Azure SQL 数据库备份存储在读取访问异地冗余存储 (RA-GRS) blob 中长达 10 年。 如果需要访问 LTR 中的任何备份,可以使用 Azure 门户或 PowerShell 将其还原为新数据库。

SQL 数据库长期保留的工作原理

LTR 功能获取用于时间点恢复的自动备份,并将它们复制到不同的 blob。 此复制操作在后台以低优先级运行,确保不会影响性能。

默认情况下不会进行此类备份。 必须配置策略才能启动和管理此类备份。

如何编写长期保留策略

LTR 设置复制自动备份以进行长期保留的频率。 使用字母指定此频率:

  • W:指定每周复制一次完整备份以进行长期保留。
  • M:指定将每月第一周的一次完整备份复制到长期保留。
  • Y:指定每年将一次完整备份复制到长期保留。

如果使用 Y 指定每年备份,则可以使用 WeekOfYear 参数指定在该年的哪一周复制备份。

对于每个策略字母,都使用数字指示保留备份的时间。 例如,要将每周备份保留 10 周,则使用 W=10。 要将每年备份保留 3 年,可使用 Y=3

长期保留策略示例

可以结合每周、每月和每年的保留值来创建灵活的策略。 例如:

  • W=0, M=0, Y=5, WeekOfYear=3

    此策略将每年第 3 周执行的完全备份保留 5 年。

  • W=0, M=10, Y=0

    此策略将每月的第一次完整备份保留 10 个月。

  • W=12, M=0, Y=0

    此策略将每周的完整备份保留 12 周。

  • W=4, M=12, Y=10, WeekOfYear=1

    此策略将每周的备份保留 4 周。 它还将每月的第一次完整备份保留 12 个月。 最后,将每年第一周进行的第一次完整备份保留 10 年。

在 PowerShell 中设置保留策略

在 PowerShell 中,可运行以下命令来检查长期保留策略:

Get-AzSqlDatabase `
    -ResourceGroupName <ResourceGroupName> `
    -ServerName <ServerName> `
    | Get-AzSqlDatabaseLongTermRetentionPolicy

要配置策略,请使用 Set-AzSqlDatabaseBackupLongTermRetentionPolicy cmdlet。 在 PowerShell 中指定这些策略时,必须使用 ISO 8601 持续时间值。 例如,要指定 W=10 策略,请将字符串 P10W 传递给 -WeeklyRetention 参数。 要指定 Y=3 策略,请将字符串 P3Y 传递给 -YearlyRetention 参数。

Set-AzSqlDatabaseBackupLongTermRetentionPolicy `
    -ServerName <ServerName> `
    -DatabaseName <DatabaseName> `
    -ResourceGroupName <ResourceGroupName> `
    -WeeklyRetention P10W `
    -YearlyRetention P3Y `
    -WeekOfYear 1