适用于:
Azure SQL 数据库
本文介绍如何在 Azure SQL 数据库中为长期保留(LTR) 备份配置基于时间的备份不可变性 。
长期保留备份的备份不可变性 有两种模式:基于时间的不可变性和法定不可变性。
若要为将来的备份配置基于时间的备份不可变性,请 创建 LTR 策略, 启用 策略,然后将其 锁定 。 锁定后,在保留期到期之前,无法删除或修改备份。
先决条件
- 一个有效的 “Azure” 订阅。
- 现有的 Azure SQL 数据库。
- 现有的长期保留(LTR)备份。
Permissions
需要拥有 Azure SQL 数据库逻辑服务器的订阅参与者角色或更高权限的成员身份,才能配置 LTR 备份的不可变性并删除 LTR 备份。
有关查看、管理和删除 LTR 备份的权限,请参阅 管理 Azure SQL 数据库长期备份保留。
为 LTR 备份创建基于时间的不可变性策略
Important
启用并锁定策略后执行的备份才是不可变的。 若要使现有备份不可变,请改用 法定保留不可变性。
可以在 Azure 门户、PowerShell 和 Azure CLI 中创建基于时间的不可变性。
若要从 Azure 门户启用和锁定基于时间的不可变性,请执行以下作:
请访问您的 Azure SQL 数据库逻辑服务器。
在 “数据管理”下,导航到“ 备份 ”选项卡。
选择“ 保留策略 ”选项卡。
选择数据库。
选择“ 配置策略”。
在“ 配置策略 ”页的 “LTR 不可变性”下,选中“ 启用基于时间的不可变性策略”框。
请选中复选框以锁定基于时间的不可变策略。 在策略被锁定之前,备份不是不可变的。 如果选择不锁定策略,则需要手动 锁定备份才能启用不可变性。
若要使用 PowerShell 启用和锁定基于时间的不可变性,请执行以下作:
Set-AzSqlDatabaseBackupLongTermRetentionPolicy
-ServerName myAzureSQL
-DatabaseName mysqldb
-ResourceGroupName myRG
-WeeklyRetention P8D
-TimeBasedImmutability Enabled
-TimeBasedImmutabilityMode Locked
若要使用 Azure CLI 启用和锁定基于时间的不可变性,
az sql db ltr-policy set --resource-group mygroup --server myserver --name mydb --weekly-retention "P0W" --monthly-retention "P0M" --yearly-retention "P0Y" --tb-immutability Enabled --tb-immutability-mode Locked
锁定备份的不可变状态
可以选择启用但不锁定基于时间的不可变性策略。
对于已启用不可变但未锁定的备份,有两个选项:
可以在 Azure 门户、PowerShell 和 Azure CLI 中锁定特定备份的不可变性。
若要在 Azure 门户中对备份锁定基于时间的不可变性,请执行以下作:
- 请访问您的 Azure SQL 数据库逻辑服务器。
- 在 “数据管理”下,导航到“ 备份 ”选项卡。
- 转到“可用 LTR 备份”下的“管理”部分。
- 选择一个或多个启用了时间不可变性但未锁定的备份。
- 选择 “锁定 ”按钮以应用不可变性。
若要使用 PowerShell 在备份上锁定基于时间的不可变性,
Important
对于已启用不可变但未锁定的每个 LTR 备份,需要独立运行该命令。
将<backup name>替换为所需备份的唯一标识符。
Lock-AzSqlDatabaseLongTermRetentionBackupImmutability
-Location chinanorth3
-ServerName myAzureSQL
-DatabaseName mysqldb
-BackupName '<backup name>'
-ResourceGroupName testrg
若要使用 Azure CLI 在备份上锁定基于时间的不可变性,
Important
对于已启用不可变但未锁定的每个 LTR 备份,需要独立运行该命令。
将<backup name>替换为所需备份的唯一标识符。
az sql db ltr-backup lock-time-based-immutability --resource-group mygroup --location chinanorth3 --server myserver --database mydb --name "<backup name>"
删除备份的不可变性
对于已启用不可变但未锁定的备份,可以删除不可变性,如下所示:
若要在 Azure 门户中去除备份上的不可变性,请执行以下操作:
- 请访问您的 Azure SQL 数据库逻辑服务器。
- 在 “数据管理”下,导航到“ 备份 ”选项卡。
- 转到“可用 LTR 备份”下的“管理”部分。
- 选择一个或多个启用了时间不可变性但未锁定的备份。
- 选择 “禁用 ”按钮以删除不可变性。
若要使用 PowerShell 删除备份上的不可变性,请执行以下作:
将<backup name>替换为所需备份的唯一标识符。
Remove-AzSqlDatabaseLongTermRetentionBackupImmutability
-Location chinanorth3
-ServerName myAzureSQL
-DatabaseName mysqldb
-BackupName '<backup name>'
-ResourceGroupName testrg
若要使用 Azure CLI 删除备份上的不可变性,请执行以下作:
将<backup name>替换为所需备份的唯一标识符。
az sql db ltr-backup remove-time-based-immutability --resource-group mygroup --location chinanorth3 --server myserver --database mydb --name "<backup name>"
禁用不可变性策略
可以从 Azure 门户、PowerShell 和 Azure CLI 中的 LTR 策略配置页禁用不可变性。
禁用不可变性后,此点中的任何新 LTR 备份都不会受到不可变性的保护。 但是,如果已锁定为不可变,则任何现有的 LTR 备份将继续不可变。
若要在 Azure 门户中禁用备份不可变性策略,请执行以下作:
- 请访问您的 Azure SQL 数据库逻辑服务器。
- 在 “数据管理”下,导航到“ 备份 ”选项卡。
- 选择“ 保留策略 ”选项卡。
- 选择数据库。
- 选择“ 配置策略”。
- 取消选中 “启用基于时间的不可变性策略”。
若要使用 PowerShell 禁用备份不可变性策略,请执行以下作:
Set-AzSqlDatabaseBackupLongTermRetentionPolicy
-ServerName myAzureSQL
-DatabaseName mysqldb
-ResourceGroupName myRG
-WeeklyRetention P8D
-TimeBasedImmutability Disabled
若要使用 Azure CLI 禁用备份不可变性策略,请执行以下作:
az sql db ltr-policy set --resource-group mygroup --server myserver --name mydb --weekly-retention "P0W" --monthly-retention "P0M" --yearly-retention "P0Y" --tb-immutability disabled
相关内容