Relačné databázy sú pravdepodobne najpoužívanejším nástrojom pre správu dát v ecommerce prostredí. Vďaka nim môžeme informácie ukladať v štruktúrovaných tabuľkách a určovať medzi nimi vzťahy, uľahčiť si optimalizáciu, zabezpečiť šifrovanie, obmedziť prístup k dátam, a najmä, dostať všetky údaje naspäť v prípade, že sa s projektom niečo stane. Len ten, kto už raz dáta stratil, si dokáže plnohodnotne uvedomiť pravdivosť zlatého pravidla každého vývoja: Zálohuj! Ale ako?
V praxi sa často používajú dva hlavné spôsoby zálohovania – dumpovanie a záznam stavu (point-in-time).
Dumpovanie databázy
V tomto prípade ide o proces, pri ktorom sa vytvorí kompletná kópia celej databázy a uloží sa na externé úložisko, napríklad na disk. Dumpovanie je realizované v určitom časovom intervale, celá databáza sa zálohuje naraz a záloha obsahuje všetky tabuľky, dáta a štruktúru databázy.
Tento spôsob back-upovania je účinný v tom, že obyčajne zaberá relatívne menej miesta, pretože sa vykonáva iba raz za čas. Avšak, práve kvôli tomu, dáta, ktoré vznikli od momentu vytvorenia zálohy do momentu problému s webom, sú nenávratne fuč. Dumpovanie databázy je preto vhodnejšie na stabilné menšie projekty bez aktívneho vývoja.
Point-in-time aleno záznam stavu
Pri Point-in-time databáza zhromažďuje tzv. binárny log – záznam všetkých zmien, ktoré sú vykonané nad databázou, spolu s časovou značkou. Pri tomto spôsobe zálohovania je možné obnoviť databázu do konkrétneho okamihu na sekundu presne. Záznam stavu zabezpečuje, že žiadne dáta nebudú stratené, a poskytuje možnosť obnovy presne o kľučový moment skôr, než vznikol na projekte problém.
Implementácia point-in-time je obzvlášť užitočná v prípade, ak na projekte prebieha aktívny vývoj a môže dôjsť k neúmyselnému zavedeniu chybných alebo neželaných zmien do produkčnej databázy.
Nevýhodou tohto spôsobu back-upovania je najčastejšie veľkosť záloh. Keďže záznam sa vytvára prakticky každú sekundu, vo výsledku väčšinou ide o obrovské súbory, ktoré je nutné niekde bezpečne uložiť.
Na našom projekte Fuego.sk sa o to stará Google Cloud, kde projekt beží. Vďaka dostupným nástrojom tu vieme point-in-time zálohovanie jednoducho zapnúť, sledovať zmeny v dátach, nastaviť časovú frekvenciu zálohovania, a najmä dáta v prípade problému obnoviť.
Recovery first!
Či si vyberiete dumpovanie alebo point-in-time, nezabudnite na kontrolu uložených dát a otestovanie možnosti ich obnovy! Gigabajty informácií vám totiž budú nanič, ak ich nebudete vedieť do produkčného prostredia nasadiť naspäť.