Reliability · 3 min read

Why infrastructure backups need restoration testing

A backup is a plan until the restore path has been exercised and documented.

By KubeCrew · Published

A backup you have not restored is a hypothesis

A green "backup succeeded" status tells you that a job ran and wrote something. It does not tell you that the data is complete, that it is readable, or that your team can bring a system back from it under pressure. The only evidence that a backup works is a successful restore.

How backups quietly fail

Restore failures tend to come from a handful of familiar causes:

  • The backup does not cover everything: a new volume, database, or configuration was never added to the job.
  • Backup data is corrupt or incomplete, and nothing checked it.
  • Encryption keys, credentials, or the backup software itself are unavailable when the primary environment is gone.
  • The restore takes far longer than anyone assumed, so the business is down longer than it planned for.
  • Backups sit in the same failure domain as the primary system, so one incident or one compromised credential can affect both.

Define RPO and RTO first

The recovery point objective (RPO) is how much data you can afford to lose, measured as time. The recovery time objective (RTO) is how long you can afford to be down. These two numbers should be agreed with the people who own the business impact, because they determine backup frequency, retention, and architecture. A restore test then measures the actual numbers against the targets.

Follow the 3-2-1 principle, then add immutability

A widely used baseline is the 3-2-1 rule: keep at least three copies of your data, on two different types of storage, with one copy offsite. Common extensions add an immutable or offline copy that cannot be altered by an attacker who gains access to production credentials, and a routine check that restores complete without errors.

How to test restores properly

Restore testing does not have to be elaborate to be valuable. A repeatable drill looks like this:

  • Pick a system and restore it into an isolated environment, never on top of production.
  • Verify at the application level: the service starts, data is current, and a real query or transaction works, not just that files exist.
  • Time the whole process and compare it with the RTO.
  • Record the steps in a runbook, including where credentials and keys are kept, and fix whatever was missing.
  • Repeat on a schedule, rotating through critical systems, and after major changes to the environment.

Monitor for the absence of success

Alert on backup failures, but also on backups that did not run at all. The most dangerous state is silence. Track the age of the last successful backup and alert when it exceeds the expected interval, and automate verification where you can, such as checksum checks or scheduled test restores of a sample.

Prioritize by business impact

You do not need to test everything on day one. Rank systems by how much it hurts when they are down, such as identity, databases, and customer-facing applications, and exercise those first. A single documented, timed, successful restore is worth more than a hundred unverified green checkmarks.

Next step

Bring us the part that is harder than it should be.

We will help you find the smallest useful next move.

Start a conversation