PointInTimeRecoveryUnavailableException

TL;DR — 這個來源表格未啟用 point-in-time recovery,因此沒有連續備份歷史可供還原。現在啟用 PITR(UpdateContinuousBackups)— 復原視窗從那一刻開始 — 而在它之前的任何東西,若你有的話,從隨需備份還原。

這是什麼意思

PointInTimeRecoveryUnavailableException: Point in time recovery has not
yet been enabled for this source table.

PITR 是每個表格選擇性加入的。在它開啟前,DynamoDB 不保留連續變更歷史,而 RestoreTableToPointInTime 沒有東西可重建 — 無論表格存在了多久。這是一個設定缺口,而非暫時性錯誤;重試不會改變答案。

為什麼會發生

  • PITR 從未啟用 — 在建立表格時未明確開啟,它預設是關閉的。
  • 新表格漏掉了檢查清單 — 從未設定 PointInTimeRecoverySpecification 的範本複製的基礎架構程式碼。
  • 表格名稱錯誤 — 你在還原 orders,但 PITR 是在 orders-prod 上啟用的(或反過來),或表格住在另一個 Region。

如何修正

  1. 確認表格的備份狀態:

    aws dynamodb describe-continuous-backups --table-name orders
    # PointInTimeRecoveryStatus: DISABLED
  2. 啟用 PITR — 保護立即開始累積,而還原視窗從現在增長至設定的復原期間:

    aws dynamodb update-continuous-backups --table-name orders \
      --point-in-time-recovery-specification PointInTimeRecoveryEnabled=true
  3. 以其他方式復原今天的資料 — PITR 無法回溯地觸及過去。若有隨需備份存在,RestoreTableFromBackup 它;否則目前的表格內容就是你所有的。

  4. 將 PITR 烘焙進表格建立 — 在你的 IaC 中為每個生產表格設定它,讓缺口不會再次發生,並記得_還原後的_表格也不會繼承 PITR — 在新表格上重新啟用它。

在決定每個表格的復原有多重要之前,先看看它們裡面有什麼 — DynoTable 桌面應用程式給你跨帳戶與 Region 的這個檢視,而 DynamoDB 定價計算器為連續備份的儲存成本標上數字。

相關錯誤

References

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

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

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