Probni oporavak: proveri bekape unapred
Kako da sprovedeš probni oporavak, šta da zabeležiš kao rezultat i koja se tipična iznenađenja otkriju samo na vežbama, a ne u pravoj katastrofi.
Ažurirano 23. avgust 2026.
Bekap iz kog nikada nisi vraćao podatke nije bekap — to je nada. Probno vraćanje traje sat vremena jednom u tri meseca i pretvara nadu u proverenu činjenicu.
Šta proveriti
Tri pitanja na koja moraš imati odgovore pre incidenta:
- Potpunost. Da li bekap sadrži sve što je potrebno za pokretanje: podatke, podešavanja, ključeve, sertifikate, raspored.
- Čitljivost. Da li se arhiva otvara, da li se dump baze vraća bez grešaka.
- Vreme. Koliko će sati trajati potpuno vraćanje. Taj broj moraš znati unapred, a ne da ga otkriješ pod pritiskom.
Kako izvesti probu
Najiskrenija opcija je na odvojenoj mašini, ne na produkcionoj. Uzmi VDS-1 na mesec dana, vrati na njega sve od nule i meri vreme.
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
Vrati bazu:
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;"
Pokreni aplikaciju i otvori je u pregledaču — to je poslednji korak. Dok se stranica ne otvori, vraćanje se nije dogodilo.
Lakša opcija koja je takođe korisna: vrati samo bazu u odvojen kontejner na istoj mašini i uveri se da su podaci tu i sveži.
Proveri ne samo da je raspakivanje uspelo, već i datum podataka. Bekap koji se pouzdano pravi, ali je pre mesec dana prestao da uključuje potreban direktorijum, u listi snimaka izgleda potpuno normalno. Uporedi broj zapisa u tabelama i vremenske oznake najnovijih fajlova.
Šta obično ispliva
- Fajl
.envje zaboravljen. Podaci su tu, ali lozinke za njih nisu. - Sertifikati su zaboravljeni. Sajt se podigne, ali ne odgovara preko HTTPS-a.
- Raspored je zaboravljen. Sve radi, ali bekapovi se više ne prave — a to otkriješ mesec dana kasnije.
- Redosled pokretanja nije zapisan. Aplikacija se pokrene pre baze i padne.
- Lozinka repozitorijuma bila je samo na izgubljenoj mašini. Bekapovi postoje, ali nema pristupa do njih.
- Vraćanje traje deset sati, ne dva. Propusni opseg prijema ili disk, vidi brzina diska.
Zapiši redosled
Na osnovu probe napiši kratko uputstvo i drži ga van mašine:
- Naruči mašinu istog ili većeg ranga — provisioning traje oko minut.
- Instaliraj Docker i vrati
/opt/myappiz bekapa. - Vrati dump baze, proveri broj zapisa.
- Vrati
/etc/nginxi sertifikate, podigni web server. - Usmeri domen na novu adresu.
- Vrati raspored iz
crontab.txt. - Proveri: sajt se otvara, prijava radi, bekapovi se ponovo prave.
Tačka 5 je najpotcenjenija. DNS zapisi se ne ažuriraju trenutno, pa unapred spusti TTL zapisa na 300 sekundi ako uopšte računaš na migraciju.
Koliko često
Jednom u tri meseca za produkcione servise, jednom u šest meseci za sve ostalo. Plus uvek posle svake veće promene: nova baza, novi servis, premeštanje direktorijuma. Upiši probu u kalendar, inače se nikada neće dogoditi.
Šta treba da bude u bekapu — šta tačno bekapovati. Gde ga čuvati — bekapovi van lokacije. Ako se incident već dogodio — podaci su izgubljeni.