可以使用 Azure 门户、Azure CLI、PowerShell 或 REST API 更改默认时间点还原 (PITR) 备份保持期和差异备份频率。 以下示例演示如何将 PITR 保持期更改为 28 天,以及将差异备份更改为 24 小时间隔。
警告
如果缩短当前的保留期,则无法还原到早于新保留期的时间点。 会删除新保留期内不再需要为提供 PITR 而保留的备份。
如果延长当前的保持期,则无法立即在新的保持期内获得恢复到旧时间点的能力。 随着时间的推移,你将获得这一能力,因为系统开始将备份保留更长的时间。
使用 Azure 门户更改活动数据库的 PITR 备份保持期和差异备份频率:
- 转到 Azure 中的逻辑服务器,其中包含要更改其保持期的数据库。
- 在左窗格中选择“备份”,然后选择“保留策略”选项卡。
- 选择要为其更改 PITR 备份保留期的数据库。
- 从操作栏中选择“配置策略”。
- 若要更改时间点还原备份的保留期,请使用“时间点还原”下的滑块。
- 若要更改差异备份频率,请从“差异备份频率”下的下拉菜单中选择“12 小时”或“24 小时”。
为 Azure CLI 准备环境:
使用以下示例更改活动数据库的 PITR 备份保留期和差异备份频率:
# Set new PITR differential backup frequency on an active individual database
# Valid backup retention must be 1 to 35 days
# Valid differential backup frequency must be ether 12 or 24 hours
az sql db str-policy set \
--resource-group myresourcegroup \
--server myserver \
--name mydb \
--retention-days 28 \
--diffbackup-hours 24
若要更改活动数据库的 PITR 备份保留期和差异备份频率,请使用以下 PowerShell 示例:
# Set a new PITR backup retention period on an active individual database
# Valid backup retention must be 1 to 35 days
Set-AzSqlDatabaseBackupShortTermRetentionPolicy -ResourceGroupName resourceGroup -ServerName testserver -DatabaseName testDatabase -RetentionDays 28
# Set a new PITR differential backup frequency on an active individual database
# Valid differential backup frequency must be ether 12 or 24 hours
Set-AzSqlDatabaseBackupShortTermRetentionPolicy -ResourceGroupName resourceGroup -ServerName testserver -DatabaseName testDatabase -RetentionDays 28 -DiffBackupIntervalInHours 24
示例请求
PUT https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup/providers/Microsoft.Sql/servers/testserver/databases/testDatabase/backupShortTermRetentionPolicies/default?api-version=2021-02-01-preview
请求正文
{
"properties":{
"retentionDays":28,
"diffBackupIntervalInHours":24
}
}
示例响应
{
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/providers/Microsoft.Sql/resourceGroups/resourceGroup/servers/testserver/databases/testDatabase/backupShortTermRetentionPolicies/default",
"name": "default",
"type": "Microsoft.Sql/resourceGroups/servers/databases/backupShortTermRetentionPolicies",
"properties": {
"retentionDays": 28,
"diffBackupIntervalInHours":24
}
}
有关详细信息,请参阅备份保留 REST API。
在 Azure 门户中,可以在创建数据库时选择一个备份存储冗余选项。 稍后可以从数据库设置的“计算和存储”页更新备份存储冗余。
创建数据库时,请在“基本信息”选项卡上选择备份存储冗余选项。
对于现有数据库,请转到 Azure 门户中的数据库。 在“设置”下选择“计算和存储”,然后选择所需的备份存储冗余选项。
若要在创建新数据库时配置备份存储冗余,可以使用 az sql db create
命令指定 --backup-storage-redundancy
参数。 可能值为 Geo
、Zone
和 Local
。
默认情况下,Azure SQL 数据库中的所有数据库均使用异地冗余存储进行备份。 如果使用本地冗余或区域冗余备份存储创建或更新数据库,则会禁用异地还原。
下面的示例在具有本地备份冗余的常规用途服务层中创建数据库:
az sql db create \
--resource-group myresourcegroup \
--server myserver \
--name mydb \
--tier GeneralPurpose \
--backup-storage-redundancy Local
可以使用 --backup-storage-redundancy
参数和 az sql db update
命令更新现有数据库的备份存储冗余设置,超大规模数据库和基本数据库除外。 在数据库上应用更改最多可能需要 48 小时。 从异地冗余备份存储切换到本地冗余或区域冗余存储会禁用异地还原。
下面的示例代码将备份存储冗余更改为 Local
:
az sql db update \
--resource-group myresourcegroup \
--server myserver \
--name mydb \
--backup-storage-redundancy Local
超大规模
在创建超大规模数据库时,请仔细考虑 --backup-storage-redundancy
的配置选项。 对于超大规模数据库,存储冗余只能在数据库创建过程中指定。 之后不能更新它。 所选的存储冗余选项将用于数据库的生存期,以同时实现数据存储冗余和备份存储冗余。 请在超大规模备份存储冗余中了解详细信息。
可以使用活动异地复制将现有的超大规模数据库迁移到不同的存储冗余,这导致的故障时间最短。 也可通过数据库复制或时间点还原迁移到不同的存储冗余。 下面的示例在具有区域冗余的超大规模服务层中创建数据库:
az sql db create \
--resource-group myresourcegroup \
--server myserver \
--name mydb \
--tier Hyperscale \
--backup-storage-redundancy Zone
有关详细信息,请参阅 az sql db create 和 az sql db update。
不能直接更新超大规模数据库的备份存储冗余。 但是,可以将数据库复制命令与 --backup-storage-redundancy
参数一起使用来更改它。 下面的示例将超大规模数据库复制到使用第 5 代硬件和两个 vCore 的新数据库。 新数据库的备份冗余设置为 Zone
。
az sql db copy \
--resource-group myresourcegroup \
--server myserver
--name myHSdb
--dest-resource-group mydestresourcegroup
--dest-server destdb
--dest-name myHSdb
--service-objective HS_Gen5_2
--read-replicas 0
--backup-storage-redundancy Zone
有关语法详细信息,请参阅 az sql db copy。 有关数据库复制的概述,请参阅复制 Azure SQL 数据库中数据库的事务一致性副本。
若要在创建新数据库时配置备份存储冗余,可以使用 New-AzSqlDatabase
cmdlet 指定 -BackupStorageRedundancy
参数。 可能值为 Geo
、Zone
和 Local
。 默认情况下,Azure SQL 数据库中的所有数据库均使用异地冗余存储进行备份。 如果使用本地冗余或区域冗余备份存储创建数据库,则会禁用异地还原。
下面的示例在具有本地备份冗余的常规用途服务层中创建数据库:
# Create a new database with geo-redundant backup storage.
New-AzSqlDatabase -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -DatabaseName "Database03" -Edition "GeneralPurpose" -Vcore 2 -ComputeGeneration "Gen5" -BackupStorageRedundancy Local
可以使用 -BackupStorageRedundancy
参数和 Set-AzSqlDatabase
cmdlet 更新现有数据库的备份存储冗余设置,超大规模数据库和基本数据库除外。 可能值为 Geo
、Zone
和 Local
。 在数据库上应用更改最多可能需要 48 小时。 从异地冗余备份存储切换到本地冗余或区域冗余存储会禁用异地还原。
下面的示例代码将备份存储冗余更改为 Local
:
# Change the backup storage redundancy for Database01 to zone-redundant.
Set-AzSqlDatabase -ResourceGroupName "ResourceGroup01" -DatabaseName "Database01" -ServerName "Server01" -BackupStorageRedundancy Local
有关详细信息,请参阅 Set-AzSqlDatabase。
超大规模
在创建超大规模数据库时,请仔细考虑 --backup-storage-redundancy
的配置选项。 对于超大规模数据库,只能在数据库创建过程中指定存储冗余。 所选的存储冗余选项将用于数据库的生存期,以同时实现数据存储冗余和备份存储冗余。 有关详细信息,请参阅超大规模备份和存储冗余。
现有数据库可以通过数据库复制或时间点还原迁移到不同的存储冗余。 下面的示例在具有区域冗余的超大规模服务层中创建数据库:
# Create a new database with geo-redundant backup storage.
New-AzSqlDatabase -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -DatabaseName "Database03" -Edition "Hyperscale" -Vcore 2 -ComputeGeneration "Gen5" -BackupStorageRedundancy Zone
有关语法详细信息,请参阅 New-AzSqlDatabase。
不能更新现有超大规模数据库的备份存储冗余。 但是,可以使用数据库复制命令创建数据库的副本。 然后,可以使用 -BackupStorageRedundancy
参数更新备份存储冗余。
下面的示例将超大规模数据库复制到使用第 5 代硬件和两个 vCore 的新数据库。 新数据库的备份冗余设置为 Zone
。
# Change the backup storage redundancy for Database01 to zone-redundant.
New-AzSqlDatabaseCopy -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -DatabaseName "HSSourceDB" -CopyResourceGroupName "DestResourceGroup" -CopyServerName "DestServer" -CopyDatabaseName "HSDestDB" -Vcore 2 -ComputeGeneration "Gen5" -ComputeModel Provisioned -BackupStorageRedundancy Zone
有关语法详细信息,请参阅 New-AzSqlDatabaseCopy。 有关数据库复制的概述,请参阅复制 Azure SQL 数据库中数据库的事务一致性副本。
注意
若要将 -BackupStorageRedundancy
参数与数据库还原、数据库复制或创建辅助数据库操作一起使用,请使用 Azure PowerShell 版本 Az.Sql 2.11.0 或更高版本。
目前无法使用 REST API 更改备份存储冗余。