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 定價計算器估算還原的讀取流量。

相關錯誤

References

最後驗證於 2026-07-13,對照上方連結的 AWS 官方文件。

不必透過主控台就能操作 DynamoDB

DynoTable 是一款快速的 DynamoDB 桌面用戶端 — 瀏覽表格、執行 SQL 風格的查詢,並在本機編輯項目。