BackupInUseException

TL;DR — 这张表上有一个相互冲突的备份控制平面操作仍在进行中:备份此刻正在被创建、删除或恢复。这些操作是串行化的——等进行中的那个完成(通过 DescribeBackup 检查 BackupStatus),然后重试你的操作。

含义

BackupInUseException: There is another ongoing conflicting backup control
plane operation on the table. The backup is either being created, deleted
or restored to a table.

按需备份操作(CreateBackupDeleteBackupRestoreTableFromBackup)是控制平面调用,DynamoDB 会拒绝那些会与已在同一备份或表上运行的操作相冲突的调用。这是一个瞬时状态错误,而不是权限或数据问题。

为什么会发生

  • 删除一个仍在创建中的备份——CreateBackup 尚未到达 AVAILABLE
  • 在从某备份进行恢复时删除它——恢复操作会一直持有该备份,直到新表创建完成。
  • 重叠的自动化——一个清理脚本和一个备份调度器互相竞争,或者一个重试循环对同一张表重复触发了 CreateBackup
  • 突发超过速率限制——DeleteBackup 每秒最多接受 10 次调用;在紧凑的循环中扫掉大量备份会同时触发冲突和限流。

如何修复

  1. 检查有什么正在进行中,然后等待:

    aws dynamodb describe-backup --backup-arn arn:aws:dynamodb:...:table/orders/backup/01234...
    # BackupStatus: CREATING | AVAILABLE | DELETED

    一旦状态稳定就重试你的操作(对已完成的创建而言是 AVAILABLE;正在恢复的表会通过 describe-table 到达 ACTIVE)。

  2. 用退避重试而非直接硬失败——备份操作耗时从数秒到数分钟不等;在调用外套一个简单的等待并重试循环即可吸收这种串行化。

  3. 串行化你的自动化——每张表由一个所有者负责备份生命周期操作;把删除排在创建之后,而不是用一个可能重叠的 cron 同时运行两者。

  4. 控制批量删除的节奏——保持在每秒 10 次 DeleteBackup 调用以下,并把这个异常当作放慢速度的信号来处理。

备份保护的是你最输不起的数据——在删除某张表的备份之前,先用 DynoTable 桌面应用浏览一下表里实际有什么,并用 DynamoDB 定价计算器估算恢复的读取流量。

在 DynoTable 中定位

在删除备份之前,请浏览它们保护的实时表 - 使用 ⌘K 打开它并确认数据仍然重要。 DynoTable 可以在清理脚本运行之前跨账户抽查表内容 (⌘P)。当你计划 RestoreTableFromBackup 时,使用 pricing calculator 估计恢复读取流量。在“设置”→“配置文件”下为拥有备份的每个帐户配置配置文件“Test Connection”。参见连接 AWS安装。在等待正在进行的备份完成时,使用 ⌘K 浏览受保护的表,以确认数据仍然值得保留。每隔几秒进行一次DescribeBackup轮询就足够了——备份创建通常在几分钟内完成,删除也有类似的限制。

来源

相关错误

参考资料

最后核实于 2026-07-13,依据上方链接的 AWS 官方文档。

无需控制台即可使用 DynamoDB

一款快速的 DynamoDB 桌面客户端,可运行 DynamoDB 无法执行的真正 SQL——JOINs、GROUP BY、聚合——并支持可视化编辑和运行在你自己的 Bedrock 密钥上的 AI agent。

30 天免费试用,无需信用卡 — 之后为无时间限制的免费版。