Database Recovery

Database Recovery

Excerpt:
Database recovery obuhvata vraćanje, popravku ili stabilizaciju baze podataka nakon greške, oštećenja, neuspešne migracije, punog diska ili pogrešne intervencije. Kod produkcionih sajtova ovaj proces mora biti posebno pažljiv jer baza često sadrži porudžbine, korisnike, sadržaj i poslovno važne podatke.

Blog članak:

Database recovery je jedan od najosetljivijih delova oporavka sajta ili aplikacije. Dok se fajlovi često mogu relativno lako vratiti iz backup-a, baza podataka sadrži žive informacije koje se stalno menjaju.

Kod WordPress, WooCommerce, Joomla i custom aplikacija baza čuva mnogo više od osnovnog sadržaja. U njoj se nalaze korisnici, podešavanja, porudžbine, proizvodi, forme, komentari, transakcije, plugin konfiguracije i često veliki deo poslovne logike sajta.

Prvi korak u recovery procesu je utvrditi šta se tačno dogodilo. Problem može biti oštećena tabela, neuspešan update, greška u migraciji, pun disk, pogrešno izvršen SQL upit, obrisani podaci ili MySQL servis koji ne može da se pokrene.

Pre svake ozbiljne intervencije treba sačuvati trenutno stanje baze. Čak i ako je baza već oštećena ili delimično neupotrebljiva, trenutna kopija može biti važna za kasniju analizu ili izvlačenje podataka koji ne postoje u starijem backup-u.

Backup je najčešći izvor oporavka, ali mora se proveriti njegova svežina. Kod aktivnih sajtova stariji backup može značiti gubitak novih porudžbina, korisničkih naloga ili poslath formi. Zato nije uvek najbolje vratiti celu bazu bez dodatne provere.

Nekada je bolje oporaviti samo deo baze. Ako je problem u jednoj tabeli, jednom pluginu ili konkretnom zapisu, selektivna intervencija može biti sigurnija od kompletnog rollback-a. To posebno važi za e-commerce sisteme sa stalnim novim unosima.

Kod punog diska baza može prestati da upisuje podatke, ostaviti tabele u problematičnom stanju ili sprečiti normalan rad MySQL-a. U takvim slučajevima prvo treba stabilizovati server, osloboditi prostor i tek onda raditi proveru baze.

Migracije su čest izvor database problema. Razlike u verziji MySQL-a, charset podešavanjima, collation pravilima, prefiksima tabela, URL vrednostima i veličini dump fajla mogu izazvati greške koje se vide tek nakon prebacivanja sajta.

Recovery proces mora uključiti proveru aplikacije nakon vraćanja baze. Nije dovoljno da import prođe bez greške; treba testirati login, frontend, administraciju, checkout, pretragu, forme, proizvode i ključne funkcije koje zavise od baze.

Database recovery zahteva preciznost i strpljenje. Najvažniji cilj nije samo da se baza ponovo pokrene, već da se sačuvaju podaci, razume uzrok problema i uspostavi sigurniji sistem backup-a, migracije i održavanja za buduće situacije.