DynamoDB export — Point in time recovery is not enabled
TL;DR — A exportação para o Amazon S3 (ExportTableToPointInTime) requer Point-in-Time Recovery (PITR) na tabela de origem. Se o PITR está desligado você recebe PointInTimeRecoveryUnavailableException: Point in time recovery is not enabled for table '<name>'. Habilite o PITR, confirme que ele reporta ENABLED e então solicite a exportação.
O que significa
An error occurred (PointInTimeRecoveryUnavailableException) when calling the
ExportTableToPointInTime operation: Point in time recovery is not enabled for
table 'my-dynamodb-table'O recurso de exportação para o S3 completa e incremental do DynamoDB lê dos backups contínuos de PITR da tabela, não da capacidade da tabela ao vivo. É por isso que ele nunca consome RCUs e pode exportar o estado de uma tabela em qualquer ponto da janela de recuperação — mas ele só funciona quando o PITR está habilitado. Sem PITR, sem exportação.
Por que isso acontece
- O PITR nunca foi ligado para a tabela —
PointInTimeRecoveryStatuséDISABLEDpor padrão em toda tabela nova. - Tabela ou region errada — o
TableArnda exportação aponta para uma tabela (ou uma réplica em outra Region) que não tem PITR configurado. - Parece similar, erro diferente — um
ExportTimefora da janela de PITR não levanta esta exceção; ele falha comInvalidExportTimeException. A janela cobre seu período de recuperação configurado (RecoveryPeriodInDays, 1–35 dias) e nunca alcança antes do momento em que o PITR foi habilitado.
Como corrigir
- Habilite o PITR na tabela de origem —
UpdateContinuousBackupscomPointInTimeRecoveryEnabled: true, ou alterne-o no console em Backups. - Confirme que o PITR está ligado —
DescribeContinuousBackupsdeve reportarPointInTimeRecoveryStatus: ENABLED. (Não confunda comContinuousBackupsStatus, que é sempreENABLEDmesmo quando o PITR está desligado.) A partir desse momento, qualquer ponto na janela é exportável. - Mantenha o
ExportTimedentro da janela — dentro do seu período de recuperação configurado (até 35 dias) e no momento ou após o momento em que o PITR foi habilitado; fora dele você receberáInvalidExportTimeException. Omita-o para exportar o ponto atual no tempo. - Confirme as permissões IAM — o chamador precisa de
dynamodb:ExportTableToPointInTimemaiss3:PutObject,s3:PutObjectAcles3:AbortMultipartUploadno bucket de destino. - Mire o ARN de tabela e a region corretos na requisição de exportação.
Precisa verificar o que de fato aterrissou no S3? O app desktop DynoTable navega pela tabela de origem e exporta os mesmos itens como CSV, JSON ou NDJSON, então você tem com o que comparar os objetos do S3.
Reproduza
Crie uma tabela, deixe o PITR desligado e peça uma exportação. O bucket não precisa existir — a verificação de PITR roda primeiro:
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')Saída real:
PointInTimeRecoveryUnavailableException: Point in time recovery is not enabled for table 'my-table'
HTTP 400Dois detalhes que valem levar para o seu tratamento de erros. A mensagem crua do SDK é só a frase acima — a forma mais longa An error occurred (PointInTimeRecoveryUnavailableException) when calling the ExportTableToPointInTime operation: … é a AWS CLI e o wrapper do botocore adicionando contexto, então qual delas você vê depende de como você chamou. E a requisição nunca chegou ao S3: o bucket desta execução não existe e mesmo assim a falha é sobre o PITR, então um erro de digitação no bucket só vai aparecer depois que o PITR estiver ligado.
Erros relacionados
- BackupNotFoundException — um ARN de backup on-demand referenciado não existe.
- ResourceNotFoundException — a própria tabela não foi encontrada.
- Aprenda: DynamoDB backup & PITR
Referências
- ExportTableToPointInTime — Amazon DynamoDB API Reference
- Requesting a table export in DynamoDB — Amazon DynamoDB Developer Guide
- DynamoDB data export to Amazon S3: how it works — Amazon DynamoDB Developer Guide
- Enable point-in-time recovery in DynamoDB — Amazon DynamoDB Developer Guide
- DescribeContinuousBackups — Amazon DynamoDB API Reference
Verificado pela última vez em 2026-07-13 contra a documentação oficial da AWS vinculada acima.
Reproduzido em 2026-07-26 no serviço DynamoDB real em us-east-1 via boto3 1.43.56 — a saída acima é literal.