PointInTimeRecoveryUnavailableException

TL;DR — 这张源表没有启用时间点恢复,因此没有可供恢复的连续备份历史。现在就启用 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 上启用的(或反之),或者表位于另一个区域。

如何修复

  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 桌面应用给你一个跨账户和区域的视图,而 DynamoDB 定价计算器会为连续备份的存储成本给出一个数字。

相关错误

References

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

无需控制台即可使用 DynamoDB

DynoTable 是面向 DynamoDB 的快速桌面客户端 —— 浏览表、运行 SQL 风格的查询,并在本地编辑项。