可以使用 Azure 门户、Azure CLI、Azure PowerShell 或 Bicep 模板将具有定期模式备份策略的 Azure Cosmos DB 帐户迁移到连续模式。 从定期模式迁移到连续模式是单向的,不可逆。 从定期模式迁移到连续模式后,可以获得连续模式的好处。
迁移到连续模式的关键原因:
- 使用 Azure 门户、CLI 或 PowerShell 自行还原数据。
- 还原到过去 30 天或 7 天时段内的特定秒。
- 确保跨分片或分区键范围进行备份一致。
- 删除或更改后还原容器、数据库或完整帐户。
- 选择容器、数据库或帐户上的事件,然后选择何时启动还原。
注意
迁移是单向迁移,无法撤消。 从定期模式迁移到连续模式后,无法切换回去。
仅当这些条件为 true 时,才能将帐户迁移到连续备份模式。 此外,请在迁移之前检查 时间点还原限制 :
- 该帐户是 NoSQL、表、Gremlin 或 MongoDB 的 API。
- 该帐户从未为容器禁用 Azure Synapse Link。
如果帐户使用 客户管理的密钥,请在 Key Vault 访问策略中声明托管标识(系统分配或用户分配),并将其设置为帐户的默认标识。
重要
将帐户迁移到连续备份模式后,与定期备份模式相比,成本可能会发生变化。 选择 30 天到 7 天也会影响备份成本。 有关详细信息,请参阅 连续备份模式定价。
先决条件
- Azure Cosmos DB 帐户
-
Microsoft.DocumentDB/databaseAccounts/write
要迁移的帐户的基于角色的访问控制权限 - 最新版本的 Azure CLI 或 Azure PowerShell
使用门户进行迁移
使用以下步骤将帐户从周期备份迁移到连续备份模式:
- Azure CLI
- Azure 门户
- Azure PowerShell
登录 Azure CLI。
az login
将帐户迁移到
continuous30days
或continuous7days
层。az cosmosdb update \ --resource-group "<resource-group-name>" \ --name "<account-name>" \ --backup-policy-type "Continuous"
az cosmosdb update \ --resource-group "<resource-group-name>" \ --name "<account-name>" \ --backup-policy-type "Continuous" \ --continuous-tier "Continuous7Days"
注意
如果未提供层值,则默认值为
continuous30days
。迁移成功完成后,输出显示
backupPolicy
对象,其中包含值为type
的Continuous
属性。{ ... "backupPolicy": { "continuousModeProperties": { "tier": "Continuous7Days" }, "migrationState": null, "type": "Continuous" }, ... }
检查迁移状态
使用 Azure CLI 检查现有迁移的状态。
- Azure CLI
- Azure 门户
- Azure PowerShell
运行以下命令以获取 Azure Cosmos DB 帐户的属性。
az cosmosdb show \ --resource-group "<resource-group-name>" \ --name "<account-name>" \
status
检查对象的属性targetType
backupPolicy
。 状态应在InProgress
迁移启动之后。{ ... "backupPolicy": { ... "migrationState": { "status": "InProgress", "targetType": "Continuous" }, "type": "Periodic" }, ... }
迁移完成后,备份类型将
Continuous
更改为所选层并包括所选层。 如果未提供层级,则层级将设置为Continuous30Days
。 再次运行相同的az cosmosdb show
命令以检查状态。{ ... "backupPolicy": { "continuousModeProperties": { "tier": "Continuous7Days" }, "migrationState": null, "type": "Continuous" }, ... }
更改连续模式层
可以在 Azure PowerShell、Azure CLI 或 Azure 门户中切换Continuous30Days
Continous7Days
。
- Azure CLI
- Azure 门户
- Azure PowerShell
以下 Azure CLI 命令演示如何将现有帐户切换到 Continous7Days
:
az cosmosdb update \
--resource-group "<resource-group-name>" \
--name "<account-name>" \
--backup-policy-type "Continuous" \
--continuous-tier "Continuous7Days"
还可以通过类似于使用 Azure CLI 和 Azure PowerShell 的方法使用 ARM 模板。
注意
从 30 天切换到 7 天层时,会立即失去还原超过 7 天的数据的能力。 从 7 天切换到 30 天层时,只能从过去 7 天还原数据,直到新备份累积为止。 可以使用 Azure PowerShell 或 Azure CLI 检查最早的可用还原时间。 切换层中的任何价格更改都会立即生效。
使用 Bicep 迁移到连续备份
若要使用 Bicep 模板和 Azure 资源管理器迁移到连续备份模式,请找到模板的 backupPolicy 部分并更新 type
属性。
请考虑具有
Periodic
备份策略的此示例模板:resource azureCosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2025-04-15' = { name: '<account-name>' properties: { // Other required properties omitted for brevity backupPolicy: { type: 'Periodic' periodicModeProperties: { backupIntervalInMinutes: 240 // 4 hours backupRetentionIntervalInHours: 48 // 2 days } } } }
更新示例模板以在
Continuous
层使用备份模式:resource azureCosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2025-04-15' = { name: '<account-name>' properties: { // Other required properties omitted for brevity backupPolicy: { type: 'Continuous' continuousModeProperties: { tier: 'Continuous7Days' } } } }
使用 Azure PowerShell 或 CLI 部署模板。 下面的示例演示如何使用 CLI 命令部署模板:
az deployment group create \ --resource-group "<resource-group-name>" \ --template-file "<template-file-path>"