Skip to content
VDS · Zálohy a disk

Test obnovy: over si zálohy vopred

Ako vykonať skúšobnú obnovu, čo si zapísať ako výsledok a aké typické prekvapenia sa odhalia len pri cvičení, nie pri skutočnej havárii.

Aktualizované 23. augusta 2026

Záloha, z ktorej si nikdy neobnovoval, nie je záloha — je to len nádej. Skúšobné obnovenie zaberie raz za štvrťrok hodinu a premení nádej na overený fakt.

Čo skontrolovať

Tri otázky, na ktoré potrebuješ odpovede skôr, než nastane incident:

  1. Úplnosť. Obsahuje záloha všetko potrebné na spustenie: dáta, nastavenia, kľúče, certifikáty, plán.
  2. Čitateľnosť. Otvorí sa archív, obnoví sa dump databázy bez chýb.
  3. Čas. Koľko hodín zaberie úplné obnovenie. Toto číslo musíš poznať vopred, nie zisťovať ho pod tlakom.

Ako spustiť cvičenie

Najúprimnejšia možnosť je na samostatnom stroji, nie na produkčnom. Vezmi si VDS-1 na mesiac, obnov naň všetko od nuly a meraj čas.

export RESTIC_REPOSITORY="sftp:backup@backup.example.com:/srv/restic"
export RESTIC_PASSWORD_FILE=/root/.restic-pass

restic snapshots
restic restore latest --target /restore
ls -la /restore

Obnov databázu:

docker compose up -d db
gunzip -c /restore/var/backups/db.sql.gz | docker compose exec -T db psql -U postgres app
docker compose exec -T db psql -U postgres app -c "select count(*) from users;"

Spusti aplikáciu a otvor ju v prehliadači — posledný krok. Kým sa stránka neotvorí, obnovenie neprebehlo.

Ľahšia možnosť, ktorá je tiež užitočná: obnov iba databázu do samostatného kontajnera na tom istom stroji a over, že dáta sú prítomné a čerstvé.

Nekontroluj len to, či rozbalenie prebehlo úspešne, ale aj dátum dát. Záloha, ktorá sa vytvára spoľahlivo, ale pred mesiacom prestala zahŕňať potrebný adresár, vyzerá v zozname snímok úplne normálne. Porovnaj počet záznamov v tabuľkách a časové značky najnovších súborov.

Čo zvyčajne vyjde najavo

  • Zabudnutý súbor .env. Dáta sú tam, ale heslá k nim nie.
  • Zabudnuté certifikáty. Stránka sa spustí, ale neodpovedá cez HTTPS.
  • Zabudnutý plán. Všetko funguje, ale zálohy sa už nevytvárajú — a zistíš to o mesiac.
  • Nezapísaný postup spúšťania. Aplikácia sa spustí pred databázou a spadne.
  • Heslo k repozitáru bolo len na stratenom stroji. Zálohy existujú, ale nemáš k nim prístup.
  • Obnovenie trvá desať hodín, nie dve. Priepustnosť prijímača alebo diskové pole, pozri rýchlosť disku.

Zapíš si postup

Na základe cvičenia napíš krátky návod a ulož ho mimo stroja:

  1. Objednaj stroj s rovnakým alebo vyšším tierom — provisioning zaberie asi minútu.
  2. Nainštaluj Docker a obnov /opt/myapp zo zálohy.
  3. Obnov dump databázy, skontroluj počet záznamov.
  4. Obnov /etc/nginx a certifikáty, spusti webový server.
  5. Nasmeruj doménu na novú adresu.
  6. Obnov plán z crontab.txt.
  7. Skontroluj: stránka sa otvára, prihlásenie funguje, zálohy sa opäť vytvárajú.

Bod 5 je najviac podceňovaný. DNS záznamy sa neaktualizujú okamžite a ak vôbec pripúšťaš migráciu, vopred zníž TTL záznamu na 300 sekúnd.

Ako často

Raz za štvrťrok pri produkčných službách, raz za pol roka pri všetkom ostatnom. A vždy po každej väčšej zmene: nová databáza, nová služba, presun adresárov. Daj si cvičenie do kalendára, inak sa nikdy nestane.

Čo má byť v zálohe — čo presne zálohovať. Kde ju mať — offsite zálohy. Ak incident už nastal — dáta sú stratené.