다음을 통해 공유

将 Azure Cosmos DB 帐户从周期备份模式迁移到连续备份模式

可以使用 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

使用门户进行迁移

使用以下步骤将帐户从周期备份迁移到连续备份模式:

  1. 登录 Azure CLI。

    az login
    
  2. 将帐户迁移到 continuous30dayscontinuous7days 层。

    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

  3. 迁移成功完成后,输出显示 backupPolicy 对象,其中包含值为 typeContinuous 属性。

    {
      ...
      "backupPolicy": {
        "continuousModeProperties": {
          "tier": "Continuous7Days"
        },
        "migrationState": null,
        "type": "Continuous"
      },
      ...
    }
    

检查迁移状态

使用 Azure CLI 检查现有迁移的状态。

  1. 运行以下命令以获取 Azure Cosmos DB 帐户的属性。

    az cosmosdb show \
        --resource-group "<resource-group-name>" \
        --name "<account-name>" \
    
  2. status检查对象的属性targetTypebackupPolicy。 状态应在 InProgress 迁移启动之后。

    {
      ...
      "backupPolicy": {
        ...
        "migrationState": {
          "status": "InProgress",
          "targetType": "Continuous"
        },
        "type": "Periodic"
      },
      ...
    }
    
  3. 迁移完成后,备份类型将 Continuous 更改为所选层并包括所选层。 如果未提供层级,则层级将设置为 Continuous30Days。 再次运行相同的 az cosmosdb show 命令以检查状态。

    {
      ...
      "backupPolicy": {
        "continuousModeProperties": {
          "tier": "Continuous7Days"
        },
        "migrationState": null,
        "type": "Continuous"
      },
      ...
    }
    

更改连续模式层

可以在 Azure PowerShell、Azure CLI 或 Azure 门户中切换Continuous30DaysContinous7Days

以下 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 属性。

  1. 请考虑具有 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
          }
        }
      }
    }
    
  2. 更新示例模板以在 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'
          }
        }
      }
    }
    
  3. 使用 Azure PowerShell 或 CLI 部署模板。 下面的示例演示如何使用 CLI 命令部署模板:

    az deployment group create \
        --resource-group "<resource-group-name>" \
        --template-file "<template-file-path>"