更新 Azure Cosmos DB 的定期备份存储冗余
适用对象: NoSQL MongoDB Cassandra Gremlin 表
Azure Cosmos DB 默认将定期模式备份数据存储在复制到配对区域的异地冗余 blob 存储中。 你可以覆盖默认的备份存储冗余。 本文介绍如何使用 Azure CLI 和 PowerShell 更新备份存储冗余。 还介绍了如何在帐户上配置 Azure 策略,以强制执行所需的存储冗余。
先决条件
更新存储冗余
使用以下步骤更新备份存储冗余。
登录到 Azure 门户,导航到 Azure Cosmos DB 帐户。
打开“备份和还原”窗格,更新备份存储冗余并选择“提交”。 操作需要几分钟时间才能完成。
确保拥有最新版本的 Azure CLI,或者高于或等于 2.30.0 的版本。 如果安装了 cosmosdb-preview
扩展,请确保将其移除。
使用 az cosmosdb locations show
命令获取帐户所在区域中可用的备份冗余选项。
az cosmosdb locations show \
--location <region-name>
输出应包含类似于以下示例的 JSON:
{
"id": "subscriptionId/<Subscription_ID>/providers/Microsoft.DocumentDB/locations/chinaeast/",
"name": "China East",
"properties": {
"backupStorageRedundancies": [
"Geo",
"Zone",
"Local"
],
"isResidencyRestricted": false,
"supportsAvailabilityZone": true
},
"type": "Microsoft.DocumentDB/locations"
}
注意
上一条命令显示特定区域中可用的备份冗余列表。 支持的值显示在 backupStorageRedundancies
属性中。 例如,某些区域可能最多支持三个冗余选项:异地、区域和本地。 其他区域可能支持这些选项的子集。 在更新之前,请选择 Azure Cosmos DB 帐户使用的全部区域支持的备份存储冗余选项。
通过所选备份冗余选项使用 az cosmosdb update
命令来更新现有帐户上的备份冗余。
az cosmosdb update \
--resource-group <resource-group-name> \
--name <account_name> \
--backup-redundancy Zone
也可以使用 az cosmosdb create
命令通过所选备份冗余选项创建新帐户。
az cosmosdb create \
--resource-group <resource-group-name> \
--name <account-name> \
--backup-redundancy Geo \
--locations regionName=<azure-region>
安装最新版本的 Azure PowerShell,或者不低于 1.4.0 的版本。
$parameters = @{
Name = "Az.CosmosDB"
RequiredVersion = "1.4.0"
}
Install-Module @parameters
使用 Get-AzCosmosDBLocation
cmdlet 获取帐户所在区域中提供的备份冗余选项。
$parameters = @{
Location = "<azure-region>"
}
(Get-AzCosmosDBLocation @parameters).Properties
输出应包含类似于以下示例的内容:
SupportsAvailabilityZone IsResidencyRestricted BackupStorageRedundancies
------------------------ --------------------- -------------------------
True False {Geo, Zone, Local}
注意
上一条命令显示特定区域中可用的备份冗余列表。 支持的值显示在 BackupStorageRedundancies
属性中。 例如,某些区域可能最多支持三个冗余选项:异地、区域和本地。 其他区域可能支持这些选项的子集。 在更新之前,请选择 Azure Cosmos DB 帐户使用的全部区域支持的备份存储冗余选项。
通过所选备份冗余选项使用 Update-AzCosmosDBAccount
cmdlet 来更新现有帐户上的备份冗余:
$parameters = @{
ResourceGroupName "<resource-group-name>"
Name = "<account-name>"
BackupStorageRedundancy = "Zone"
}
Update-AzCosmosDBAccount @parameters
也可以使用 New-AzCosmosDBAccount
cmdlet 通过所选备份冗余选项创建新帐户:
$parameters = @{
ResourceGroupName = "<resource-group-name>"
Name = "<account-name>"
Location = "<azure-region>"
BackupPolicyType = "Periodic"
BackupStorageRedundancy = "Geo"
}
New-AzCosmosDBAccount @parameters
为备份存储冗余添加 Azure Policy
Azure Policy 可帮助实施组织标准并大规模评估合规性。 有关详细信息,请参阅什么是 Azure Policy?。
以下示例演示了如何为 Azure Cosmos DB 帐户添加 Azure 策略,以验证(使用 audit
)是否已将其备份冗余配置为 Local
。
"parameters": {},
"policyRule": {
"if": {
"allOf": [
{
"field": "Microsoft.DocumentDB/databaseAccounts/backupPolicy.periodicModeProperties.backupStorageRedundancy",
"match": "Local"
}
]
},
"then": {
"effect": "audit"
}
}
后续步骤