Backup & restore decision
A decision tree that walks you step by step through what you need to do with backups (take a backup, restore, return to a specific point in time - PITR, or verify a backup) and leads you to the right commands and steps for each database.
What do you want to do?
Choose your goal. Are you taking a new backup, restoring an existing backup, returning to a specific time (just before an outage), or verifying that the backup you have is sound?
- I want to TAKE a backup
- I want to RESTORE a backup
- Return to a specific point in time (PITR)
- I want to VERIFY a backup
Which type of backup?
A logical backup (dump) is portable and suits selective restores but is slow for large data. A physical backup (file/block level) suits large databases and fast recovery. Choose according to your needs.
- Logical backup (dump / export)
- Physical / full backup
Taking a logical backup (dump)
Exports data as SQL/BSON statements. Ideal for moving across versions/platforms and restoring a single table/collection.
Taking a physical / full backup
A block/file-level copy of the datafiles. Fast for large databases and the foundation for PITR and full recovery.
Restoring a backup
Restore the most suitable backup you have to the target. First verify the backup's integrity and timestamp, then load it with the engine-appropriate command.
Returning to a specific point in time (PITR)
You want to return, with second-level precision, to just before an accidental delete/corruption. You need a full backup + the transaction logs up to that point (archived logs / WAL / binlog).
Verifying a backup
A backup is only a backup once it has been proven restorable. Test integrity and actual restorability regularly.