Restore and retention

Perform a full restore drill

Recover a complete dataset on a clean destination using only documented tools, credentials, and instructions.

10 minute lesson

~~~

An untested backup is a hope, not a plan. A full drill tests more than bytes. It tests account access, keys, software availability, time, storage capacity, and written procedures — every link in the chain you’ll depend on when it’s real.

The rule that makes a drill honest: use only what would survive the disaster. Documented instructions, stored credentials, downloadable tools. If you fill a gap from memory during the drill, the drill has found a bug in your runbook. Write it down.

Run the restore

Restore the latest known-good lab snapshot to a fresh location:

mkdir full-restore
time restic restore SNAPSHOT_ID --target full-restore
restoring snapshot 4a72fb18 of [/home/flavio/notes] at 2026-08-03 09:12:33 to full-restore
Summary: Restored 48 files/dirs (3.845 MiB) in 0:02

real    0m2.311s

Wrapping the command in time matters: measured elapsed time on a realistic dataset is the only honest input to your RTO. A 2-second lab restore scales very differently when the real dataset is 200 GB behind a slow uplink.

Verify like you mean it

Measure elapsed time and verify file counts, checksums, permissions, and application startup where relevant:

find full-restore -type f | wc -l        # expect the snapshot's file count
diff -r notes/ full-restore/notes/       # silence means identical
stat full-restore/notes/report.txt       # spot-check ownership and mode

For an application dataset, the real verification is starting the application against the restored files and clicking around. Files that exist but don’t produce a working service are a failed restore that looks successful.

Record every missing dependency as you hit it: the password you had to look up, the restic version you had to guess, the disk that was nearly too small. Each one is a runbook fix, and finding them now is the entire value of the exercise.

Keep the drill safe

A drill must not endanger live data. Use a disposable destination and isolated service configuration. Never point a drill’s restored application at production databases or credentials — a “test” service that sends real emails to real customers is its own incident. The drill should be boring for everyone except your documentation.

Lesson completed

Take this course offline

Get every free book and course as PDF and EPUB files.

Get the download library →