DynamoDB export — Point in time recovery is not enabled

TL;DR — Der Export nach Amazon S3 (ExportTableToPointInTime) erfordert Point-in-Time Recovery (PITR) auf der Quelltabelle. Ist PITR aus, bekommst du PointInTimeRecoveryUnavailableException: Point in time recovery is not enabled for table '<name>'. Aktiviere PITR, bestätige, dass es ENABLED meldet, und fordere dann den Export an.

Was es bedeutet

An error occurred (PointInTimeRecoveryUnavailableException) when calling the
ExportTableToPointInTime operation: Point in time recovery is not enabled for
table 'my-dynamodb-table'

DynamoDBs Full- und Incremental-Export nach S3 liest aus den kontinuierlichen PITR-Backups der Tabelle, nicht aus der Live-Tabellenkapazität. Deshalb verbraucht er nie RCUs und kann den Zustand einer Tabelle zu jedem Zeitpunkt im Recovery-Fenster exportieren — aber er funktioniert nur, wenn PITR aktiviert ist. Kein PITR, kein Export.

Warum es passiert

  • PITR wurde nie eingeschaltet für die Tabelle — PointInTimeRecoveryStatus ist auf jeder neuen Tabelle standardmäßig DISABLED.
  • Falsche Tabelle oder Region — der TableArn des Exports zeigt auf eine Tabelle (oder eine Replica in einer anderen Region), die kein PITR konfiguriert hat.
  • Sieht ähnlich aus, anderer Fehler — eine ExportTime außerhalb des PITR-Fensters wirft diese Exception nicht; sie scheitert mit InvalidExportTimeException. Das Fenster umfasst deinen konfigurierten Recovery-Zeitraum (RecoveryPeriodInDays, 1–35 Tage) und reicht nie vor den Moment zurück, in dem PITR aktiviert wurde.

So behebst du es

  1. Aktiviere PITR auf der Quelltabelle — UpdateContinuousBackups mit PointInTimeRecoveryEnabled: true, oder schalte es in der Konsole unter Backups um.
  2. Bestätige, dass PITR an istDescribeContinuousBackups sollte PointInTimeRecoveryStatus: ENABLED melden. (Verwechsle es nicht mit ContinuousBackupsStatus, das immer ENABLED ist, selbst wenn PITR aus ist.) Ab diesem Moment ist jeder Punkt im Fenster exportierbar.
  3. Halte ExportTime innerhalb des Fensters — innerhalb deines konfigurierten Recovery-Zeitraums (bis zu 35 Tage) und zum oder nach dem Moment, in dem PITR aktiviert wurde; außerhalb bekommst du InvalidExportTimeException. Lass es weg, um den aktuellen Zeitpunkt zu exportieren.
  4. Bestätige die IAM-Berechtigungen — der Aufrufer braucht dynamodb:ExportTableToPointInTime plus s3:PutObject, s3:PutObjectAcl und s3:AbortMultipartUpload auf dem Ziel-Bucket.
  5. Ziele auf den richtigen Tabellen-ARN und die richtige Region in der Export-Anfrage.

Musst du verifizieren, was tatsächlich in S3 gelandet ist? Die DynoTable-Desktop-App durchsucht die Quelltabelle und exportiert dieselben Items als CSV, JSON oder NDJSON, sodass du etwas hast, womit du die S3-Objekte abgleichen kannst.

So reproduzierst du es

Erstelle eine Tabelle, lass PITR aus und fordere einen Export an. Der Bucket muss nicht existieren — die PITR-Prüfung läuft zuerst:

import boto3
ddb = boto3.client('dynamodb', region_name='us-east-1')
arn = ddb.describe_table(TableName='my-table')['Table']['TableArn']
ddb.export_table_to_point_in_time(TableArn=arn, S3Bucket='any-bucket-name')

Echte Ausgabe:

PointInTimeRecoveryUnavailableException: Point in time recovery is not enabled for table 'my-table'
HTTP 400

Zwei Details, die du in deine Fehlerbehandlung mitnehmen solltest. Die rohe SDK-Meldung ist nur der Satz oben — die längere Form An error occurred (PointInTimeRecoveryUnavailableException) when calling the ExportTableToPointInTime operation: … ist der Kontext, den die AWS CLI und der botocore-Wrapper hinzufügen; welche du siehst, hängt also davon ab, wie du aufgerufen hast. Und die Anfrage hat S3 nie erreicht: Der Bucket in diesem Lauf existiert nicht, doch der Fehlschlag dreht sich um PITR — ein Bucket-Tippfehler taucht also erst auf, wenn PITR an ist.

Verwandte Fehler

Referenzen

Zuletzt verifiziert am 2026-07-13 gegen die oben verlinkte offizielle AWS-Dokumentation.

Am 2026-07-26 gegen den Live-DynamoDB-Dienst in us-east-1 via boto3 1.43.56 reproduziert — die Ausgabe oben ist wortgetreu.

Mit DynamoDB ohne die Console arbeiten

Ein schneller DynamoDB-Desktop-Client, der das echte SQL ausführt, das DynamoDB nicht kann — JOINs, GROUP BY, Aggregationen — mit visueller Bearbeitung und einem KI-Agenten auf deinen eigenen Bedrock-Schlüsseln.

30 Tage kostenlos testen, keine Kreditkarte — danach der Kostenlos-Tarif ohne Zeitlimit.