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:
- Úplnosť. Obsahuje záloha všetko potrebné na spustenie: dáta, nastavenia, kľúče, certifikáty, plán.
- Čitateľnosť. Otvorí sa archív, obnoví sa dump databázy bez chýb.
- Č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:
- Objednaj stroj s rovnakým alebo vyšším tierom — provisioning zaberie asi minútu.
- Nainštaluj Docker a obnov
/opt/myappzo zálohy. - Obnov dump databázy, skontroluj počet záznamov.
- Obnov
/etc/nginxa certifikáty, spusti webový server. - Nasmeruj doménu na novú adresu.
- Obnov plán z
crontab.txt. - 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é.