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。
如何修正
確認表格的備份狀態:
aws dynamodb describe-continuous-backups --table-name orders # PointInTimeRecoveryStatus: DISABLED啟用 PITR — 保護立即開始累積,而還原視窗從現在增長至設定的復原期間:
aws dynamodb update-continuous-backups --table-name orders \ --point-in-time-recovery-specification PointInTimeRecoveryEnabled=true以其他方式復原今天的資料 — PITR 無法回溯地觸及過去。若有隨需備份存在,
RestoreTableFromBackup它;否則目前的表格內容就是你所有的。將 PITR 烘焙進表格建立 — 在你的 IaC 中為每個生產表格設定它,讓缺口不會再次發生,並記得_還原後的_表格也不會繼承 PITR — 在新表格上重新啟用它。
在決定每個表格的復原有多重要之前,先看看它們裡面有什麼 — DynoTable 桌面應用程式給你跨帳戶與 Region 的這個檢視,而 DynamoDB 定價計算器為連續備份的儲存成本標上數字。
相關錯誤
- InvalidRestoreTimeException — PITR 已開啟,但請求的時間在視窗外。
- Export requires PITR — 表格匯出也需要 PITR。
- BackupNotFoundException
- 學習:Backups & point-in-time recovery
References
- RestoreTableToPointInTime — Amazon DynamoDB API Reference
- UpdateContinuousBackups — Amazon DynamoDB API Reference
- Point-in-time recovery for DynamoDB — Amazon DynamoDB Developer Guide
最後驗證於 2026-07-13,對照上方連結的 AWS 官方文件。