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で有効化されている(またはその逆)、あるいはテーブルが別のリージョンにある。
修正方法
テーブルのバックアップ状態を確認します:
aws dynamodb describe-continuous-backups --table-name orders # PointInTimeRecoveryStatus: DISABLEDPITR を有効にします — 保護は即座に蓄積し始め、復元ウィンドウは今から設定されたリカバリ期間まで成長します:
aws dynamodb update-continuous-backups --table-name orders \ --point-in-time-recovery-specification PointInTimeRecoveryEnabled=true今日のデータを別の方法で回復します — PITR は過去に遡及的に到達できません。オンデマンドバックアップがあれば
RestoreTableFromBackupします。そうでなければ、現在のテーブルの内容が手元にあるものです。PITR をテーブル作成に組み込みます — すべての本番テーブルの IaC で設定し、ギャップが再発できないようにします。そして 復元された テーブルも PITR を継承しないことを忘れないでください。新しいテーブルで再有効化してください。
テーブルごとにどれだけの復元が重要かを決める前に、中身を見ましょう。DynoTable デスクトップアプリ はアカウントとリージョンをまたいでそのビューを提供し、DynamoDB 料金計算ツール は継続バックアップのストレージコストを数値化します。
関連するエラー
- InvalidRestoreTimeException — PITR はオンだが、要求した時刻がウィンドウの外。
- Export requires PITR — テーブルエクスポートも PITR を必要とする。
- BackupNotFoundException
- Learn: 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 ドキュメントに照らして確認しました。