Perusperiaate

Backup ilman restore-testausta on toiveajattelua. DR (Disaster Recovery) tarkoittaa, että sinulla on dokumentoitu polku ja todisteet siitä, että palautus toimii.

1) Ennen kuin mitään tapahtuu (valmiustaso)

  1. Inventoi: mitä pitää palauttaa (www, db, cront, konfigit, secrets, certit).
  2. Tallenna “lähde totuudelle”: repo / vault / dokumentti, josta DR-ohje löytyy.
  3. Varmista pääsy: hostingin console/KVM, cPanel, SSH, DNS-hallinta, domain-tili.
  4. Pidä yhteystiedot: palveluntarjoaja, domain, kriittiset tunnukset, offline-kopio.
Käytännön nyrkkisääntö: jos et pääse sisään ilman selaimen salasana-automaattia, sinulla ei ole DR:ää. Sinulla on toivoa.

2) Backuppien “todisteet” (manifesti ja checksumit)

Hyvä backup sisältää metadatan: mitä pakattiin, milloin, millä versiolla, ja millä checksumilla. Vähintään:

# Esimerkki: checksumit
sha256sum *.tar.gz *.sql.gz > SHA256SUMS
sha256sum -c SHA256SUMS
Jos checksumit eivät täsmää: älä “kokeile restorea ja katso”. Tee uusi backup ja tutki rikkoutuminen.

3) DR-checklist (kun hätä on päällä)

  1. Tilannekuva: mikä on rikki? (www, db, DNS, cert, palvelin, tunnukset)
  2. Stop the bleeding: estä lisävahinko (offline, maintenance, salasanat).
  3. Valitse palautus: viimeisin hyvä backup vai “edellinen varma”.
  4. Varmista checksumit ennen palautusta.
  5. Palauta järjestyksessä:
    • konfigit / runtime / oikeudet
    • tiedostot (www)
    • tietokannat (db dump import)
    • cront / ajastukset
    • DNS / TLS / sertit
  6. Smoke test: aukeaako etusivu, kirjautuminen, lomakkeet, admin.
  7. Logit: tarkista virheet (web, php, db).
  8. Dokumentoi: mitä tehtiin ja miksi (post-mortem myöhemmin).

4) Testipalautus (se osa jonka ihmiset “tekee myöhemmin”)

Tee testipalautus säännöllisesti. Jos sinulla ei ole erillistä stagingia, tee vähintään “minimipalautus” paikallisesti:

# Esimerkki: pura ja tarkista
mkdir -p /tmp/restore-test
tar -xzf site-www.tar.gz -C /tmp/restore-test
ls -lah /tmp/restore-test | head
Hyvä mittari: testipalautuksen pitäisi olla dokumentoitu niin, että joku muu (tai väsyneen päivän sinä) pystyy tekemään sen.

5) Runbook-malli (kopioi ja täytä)

DR RUNBOOK – {{SERVICE}}
- Palvelu: {{domain/app}}
- RPO: {{x h}}
- RTO: {{x h}}
- Pääsyt:
  - Console/KVM: {{url/ohje}}
  - SSH: {{host/user}}
  - cPanel: {{url}}
  - DNS: {{provider}}
- Backup-sijainti: {{vault path}}
- Palautusjärjestys:
  1) {{configs}}
  2) {{www restore}}
  3) {{db import}}
  4) {{cron}}
  5) {{tls/dns}}
- Smoke test:
  - {{url 1}}
  - {{url 2}}
- Post-restore:
  - logit ok?
  - monitorointi?
  - tee uusi backup

Tee tästä oma versio jokaiselle domainille (nousiainen.eu, it-huoltomies.fi, publattahattu...).

Yhteenveto

Kun palautus on dokumentoitu, hätätilanne muuttuu “työlistaksi”. Se on koko DR:n pointti.