Ship & Sleep / Blog

A backup that was never restored is a rumor.

Every data-loss story we've ever heard contains the same sentence, spoken with complete sincerity weeks before the incident: "we have backups." The sentence is usually even true. The backups exist. They are also, with surprising frequency, unrestorable — pointed at the wrong database, missing half the tables, encrypted with a key nobody kept, or simply never completing since a migration eight months ago.

None of this is discoverable by looking at a settings page. It is only discoverable by doing the one thing almost nobody does: restoring.

What a restore drill actually is

A restore drill is a rehearsal of the worst day: take the most recent backup, recover it into a separate environment, and verify the result — row counts, recent records, whether the app actually starts against the restored data. Then write down two numbers: how old the backup was, and how long the recovery took. Those two numbers are your real safety net. Everything else is decoration.

How to run one yourself

  1. Never restore over production. Create a fresh, separate database or project and restore into that. This is the step that turns a safe rehearsal into a catastrophe if skipped — read it twice.
  2. Start the clock when you begin, stop it when the restored copy is queryable.
  3. Verify substance, not existence: compare table counts against production, open the most recent records, check that files and uploads came along if your app stores any.
  4. Write the result down — date, backup age, duration, problems. A drill that isn't documented will be doubted, including by you.

How often

For a small production app, quarterly is a defensible rhythm; monthly if downtime costs real money. The interval matters less than the schedule existing at all — a drill that depends on someone remembering it is a drill that stops happening the first busy month.

This is exactly why restore drills are a scheduled, documented part of every Managed Operations plan, with the timing printed in the monthly report. Not because rehearsals are exciting — because the alternative is finding out on the day it counts.

Want this level of care applied to your app?

The Health Check answers questions like these with evidence — $249 flat, read-only, guarantee-backed.

Request a Health Check