PointInTimeRecoveryUnavailableException

En bref — La restauration à un instant donné n'a pas été activée sur cette table source, il n'y a donc aucun historique de sauvegarde continue à partir duquel restaurer. Active la PITR maintenant (UpdateContinuousBackups) — la fenêtre de récupération démarre à partir de ce moment — et pour tout ce qui précède, restaure à partir d'une sauvegarde à la demande si tu en as une.

Ce que ça signifie

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

# what the engine actually returns, reproduced against Amazon DynamoDB (live service, us-east-1):
PointInTimeRecoveryUnavailableException: Point in time recovery is not enabled for table 'seo-repro-scratch'

La PITR est optionnelle par table. Tant qu'elle n'est pas activée, DynamoDB ne conserve aucun historique continu des modifications, et RestoreTableToPointInTime n'a rien à reconstruire — quelle que soit l'ancienneté de la table. C'est une lacune de configuration, pas une erreur transitoire ; réessayer ne changera pas la réponse.

Pourquoi ça arrive

  • La PITR n'a jamais été activée — elle est désactivée par défaut lorsqu'une table est créée sans l'activer explicitement.
  • Une nouvelle table a manqué la check-list — du code d'infrastructure copié depuis un modèle qui ne définit pas PointInTimeRecoverySpecification.
  • Le mauvais nom de table — tu restaures orders mais la PITR a été activée sur orders-prod (ou l'inverse), ou la table se trouve dans une autre Région.

Comment le corriger

  1. Vérifie l'état de sauvegarde de la table :

    aws dynamodb describe-continuous-backups --table-name orders
    # PointInTimeRecoveryStatus: DISABLED
  2. Active la PITR — la protection commence à s'accumuler immédiatement, et la fenêtre de restauration grandit à partir de maintenant jusqu'à la période de récupération configurée :

    aws dynamodb update-continuous-backups --table-name orders \
      --point-in-time-recovery-specification PointInTimeRecoveryEnabled=true
  3. Récupère les données d'aujourd'hui d'une autre manière — la PITR ne peut pas atteindre le passé rétroactivement. Si une sauvegarde à la demande existe, restaure-la avec RestoreTableFromBackup ; sinon le contenu actuel de la table est ce dont tu disposes.

  4. Intègre la PITR à la création de la table — définis-la dans ton IaC pour chaque table de production afin que la lacune ne puisse pas se reproduire, et souviens-toi qu'une table restaurée n'hérite pas non plus de la PITR — réactive-la sur la nouvelle table.

Avant de décider de l'importance de la récupération par table, regarde ce qu'elles contiennent — l'application de bureau DynoTable t'offre cette vue à travers les comptes et les Régions, et le calculateur de tarification DynamoDB chiffre le coût de stockage des sauvegardes continues.

Avant de réessayer dans DynoTable

Avant de décider quelles tables ont besoin du PITR, parcours leur contenu dans DynoTable — ouvre chaque table avec ⌘K d'une Région à l'autre (⌘P change de profil) et confirme que les données valent le coût d'une sauvegarde continue. Le calculateur de tarifs estime les frais de stockage PITR par table, de quoi prioriser les charges de production.

Une fois le PITR activé, vérifie le statut de sauvegarde depuis la console AWS ou la CLI, puis contrôle ponctuellement les données restaurées dans DynoTable une fois une restauration de test terminée. Configure les profils sous Settings → Profiles avec Test Connection pour chaque Région. Vois Se connecter à AWS et Installation. Le stockage PITR se cumule à partir du moment de l'activation — il n'y a pas de fenêtre rétroactive pour les données écrites avant que tu ne l'actives.

Sources

Erreurs liées

Références

Dernière vérification le 2026-07-13 par rapport à la documentation officielle AWS liée ci-dessus.

Travaille avec DynamoDB sans la Console

Un client de bureau rapide pour DynamoDB qui exécute le vrai SQL que DynamoDB ne peut pas — JOINs, GROUP BY, agrégations — avec édition visuelle et un agent IA sur tes propres clés Bedrock.

Essai gratuit de 30 jours, sans carte bancaire — ensuite la formule Gratuit, sans limite de durée.