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 ドキュメントに照らして確認しました。

Console なしで DynamoDB を扱う

DynoTable は DynamoDB 向けの高速なデスクトップクライアントです — テーブルを閲覧し、SQL スタイルのクエリを実行し、アイテムをローカルで編集できます。