使用长期保留策略保留备份历史记录
公司需要将备份保留数月或数年,以进行常规的管理保护,比如还原意外删除的数据。
例如,至少有一个国家/地区的数据保护法要求你的零售组织将所有客户交易的记录保留 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