BACKUP / RESTORE TABLE — DynamoDB-managed snapshots

View .md

Take an on-demand DynamoDB-managed snapshot before risky work, then use the returned ARN to restore that snapshot into a new table. BACKUP TABLE lowers to CreateBackup; RESTORE TABLE lowers to RestoreTableFromBackup. Neither statement exports data to S3, mutates the source table, or overwrites an existing table.

Syntax

sql
BACKUP TABLE "table" AS 'backup-name';RESTORE TABLE "new-table"  FROM BACKUP 'backup-arn';
  • Backup name — required and single-quoted. The run reports the created backup's ARN; keep it, because restore v1 accepts the ARN directly.
  • Restore target — a new, quoted table name. It must not already exist.
  • No PITR prerequisiteCreateBackup is an on-demand managed snapshot. It is distinct from point-in-time restore and from an S3 export.
  • Stage policy — both are control-plane writes and a read-only stage refuses them.
  • Surfaces — both run from the PartiQL console and Browse's PartiQL mode.

Use cases

Snapshot before a bulk migration Lowered

A previewed write will touch thousands of orders. Capture a named recovery point before approving the job.

sql
BACKUP TABLE "stage.Orders" AS 'orders-pre-migration-2026-06-19';
Executes asCreateBackup · table stage.Orders · name orders-pre-migration-2026-06-19
  • The status reports the backup ARN — the exact handle the restore statement needs.
Restore into an isolated table Lowered

Recover the snapshot for inspection without replacing or mutating the live orders table.

sql
RESTORE TABLE "stage.OrdersRecovered"  FROM BACKUP 'arn:aws:dynamodb:us-east-1:123456789012:table/stage.Orders/backup/01234567890123-example';
Executes asRestoreTableFromBackup · target stage.OrdersRecovered · source backup ARN
  • The new table remains CREATING until DynamoDB reports it ACTIVE; the DDL receipt and Background Tasks panel track that lifecycle.

Related: Tables, indexes, backups & replicas · Bulk writes · CREATE / DROP TABLE · the Bean & Bark safe-write lesson.

Was this page helpful?