使用 Cosmos DB Azure 备份,可以备份数据并将其存储在Azure 备份保管库中,以延长保留期。 它与连续备份(时间点还原)配合使用,让你能够在需要将数据保留时间延长到超出标准连续备份窗口的合规、审计或灾难恢复场景中保护数据。
先决条件
有关支持的区域、方案和限制的详细信息,请参阅Azure Cosmos DB备份支持。
解决常见问题
使用 Cosmos DB Azure 备份时,该服务会根据多个先决条件验证请求。 如果验证检查失败,服务将返回 HTTP 409 响应,其中包含标识特定问题的子状态代码。
下表列出了可能会遇到的常见错误,按它们适用的操作进行分组。
操作图例:E = 启用,D = 禁用,B = 备份,R = 还原
| 子状态码 | 适用对象 | 说明 | 解决方案 |
|---|---|---|---|
RequestNotSupportedOnOfflineCosmosDBAccountUserError |
E、B、R | Azure Cosmos DB帐户未处于联机状态。 该帐户可能处于过渡状态,例如删除或禁用。 | 等待帐户返回到联机状态,然后再重试。 |
LongTermProtectionNotEnabledUserError |
D、B | 尚未在此帐户上启用长期保护(LTP)。 备份操作需要启用 LTP。 | 请联系Azure支持部门,在帐户上启用长期保护。 若要禁用,无需执行任何操作,因为 LTP 已处于关闭状态。 |
CrossRegionExternalBackupNotAllowedUserError |
B | Azure Cosmos DB帐户的写入区域与帐户的 ARM 位置不匹配,目前不支持跨区域备份。 如果最初创建帐户后写入区域已更改,则可能会出现此问题。 | 在重试之前,请确保Azure Cosmos DB写入区域与 ARM 位置匹配。 |
CrossRegionLongTermProtectionNotAllowedUserError |
E | 帐户的 ARM 位置与其写入区域不匹配。 仅当这些项目相匹配时,才能启用 LTP。 | 在启用 LTP 之前,请确保帐户的写入区域与 ARM 位置匹配。 |
RequestNotSupportedOnEmptyCosmosDBAccountUserError |
B | 在帐户中找不到指定备份时间戳的数据库或集合。 | 在重试之前,请验证帐户是否至少包含一个数据库和集合。 |
PartitionLimitExceededUserError |
E、B | 只有少于 2,500 个分区的帐户才支持备份。 帐户超出此限制。 | 请联系 Azure 支持部门以寻求帮助。 |
IncorrectApiTypeForCosmosDBAccountUserError |
E、R | 启用:LTP 仅在 NoSQL 和 MongoDB API 帐户上受支持。 对于还原:目标帐户的 API 类型与备份源不匹配。 | 若要启用,请使用 NoSQL 或 MongoDB 帐户。 对于还原,请确保目标帐户使用与源相同的 API 类型。 |
RequestNotSupportedOnPeriodicBackupModeCosmosDBAccountUserError |
E | 该帐户使用定期备份模式。 LTP 要求启用连续备份(PITR)。 | 在启用 LTP 之前,将帐户迁移到连续备份模式(PITR)。 |
RequestNotSupportedOnPPAFEnabledCosmosDBAccountUserError |
E | 帐户已启用按分区自动故障转移(PPAF),该功能与 LTP 不兼容。 | 在启用 LTP 之前,禁用按分区自动故障转移。 |
RequestNotSupportedOnMultiRegionCosmosDBAccountUserError |
R | 目标帐户具有多个区域。 仅支持单区域账户进行恢复。 | 在重试之前,请从目标帐户中删除其他区域。 |
RestoreNotSupportedOnServerlessCosmosDBAccountUserError |
R | 目标帐户是无服务器帐户。 无服务器帐户不支持还原。 | 使用预配的吞吐量帐户作为还原目标。 |
RequestNotSupportedOnNonEmptyCosmosDBAccountUserError |
R | 目标帐户已包含数据库。 还原需要一个空帐户。 | 在重试之前,请从目标帐户中删除所有数据库,或创建一个没有数据的新帐户。 |
AnotherOperationInProgressOnCosmosDBAccountUserError |
R | 此账户已有另一个管理操作正在进行中。 | 等待当前操作完成,然后重试还原。 |
Tip
如果在遵循建议的解决方法步骤后继续遇到问题,请联系Azure支持部门提供完整的错误响应,包括子状态代码和x-ms-request-id标头。