... není to tak jednoduché, jak jste čekali. Nebo snad ano?
30.12.2005 06:00 | Petr Zajíc | přečteno 18502×
Již jsme se podívali na zoubek všem podstatným změnám, které přináší
pětková verze databáze MySQL. Takže se teď s klidným svědomím můžeme
věnovat zase trochu obecněji platným tématům. Jinými slovy, u
následujících dílů seriálu si přijdou na své i uživatelé starších verzí
MySQL. Řeč dnes bude o zálohování; a protože toto téma si to zaslouží,
bude to spíše teoretický rozbor toho proč, co, kdy, kdo a jak má (může)
zálohovat. Jak uvidíme, celé téma je dost rozsáhlé.
Je naprosto samozřejmé, že dříve či později narazíte při práci s
libovolnou databází na problém zálohování dat. Typická databázová
aplikace ukládá drtivou většinu svých dat (ne-li všechna) právě
do databáze a přijít o ně může znamenat naprostou katastrofu. Problém
se nevyhýbá ani MySQL - i zde se bude muset zálohování nějak řešit.
Dnešní zamyšlení nám ale má pomoci uvědomit si, že různé aspekty
zálohování vyžadují různý přístup a že ne vždy rozumíme pod výrazem
zálohování totéž.
Tato zdánlivě jednoduchá otázka má více odpovědí. Zálohovat
můžete:
Jistě by se našly i další důvody. Uvádím to celé proto, abyste si
uvědomili, že potřeba zálohování může pramenit z kdečeho a postupy se
pak mohou lišit.
"Zálohování databáze" je široký pojem, možná až moc. V zásadě můžete
zálohovat:
Mezi jednotlivými body jsou jemné kvalitativní rozdíly. Není
například pravda, že zálohovat "strukturu a data" znamená zálohovat
"celou databázi". Kromě dat totiž databáze může obsahovat i například
indexy - a ty můžete a nemusíte chtít uchovat. Připomeňme si, že indexy
se dají podle potřeby rušit a vytvářet relativně nezávisle na datech.
Rovněž můžete a nemusíte chtít zachovat definici uživatelsky
definovaných funkcí, uložených procedur, spouští a pohledů.
Třebaže se Vám to možná bude zdát zvláštní, tak vězte, že tohle je
jedna z nejtěžších otázek při správě databází. Na jednu stranu budou
existovat (relativně) bezcenná data, která možná nebudete chtít
zálohovat nikdy. Mám na mysli třeba staré přístupové protokoly. Na
druhou stranu existují data tak cenná, že byste je
chtěli zálohovat téměř po každé operaci. Protože zálohování může
nepříznivě ovlivnit výkon systému, souběžnost práce s databází a může
zabrat
docela dost místa na disku, je v praxi běžně k vidění kompromis mezi
oběma extrémy. Ten kompromis může být následující:
I to je na pováženou. Zálohovat samozřejmě může:
Protože sám vyvíjím databázové aplikace, dovolte, abych tu nastínil
jednu zásadu: Ponechat zálohování
na uživateli je cesta k maléru. Průměrný uživatel zkrátka data
zálohovat nebude, a pokud ano
tak jen proto, že v minulosti již o nějaká ta data přišel. To
samozřejmě neznamená, že bychom uživatelům neměli umožnit zálohování
provést; spíše to znamená, že bychom se na to neměli v žádném případě
spolehnout.
Správce serveru naproti tomu většinou data zálohovat bude, zejména pokud je provoz
databázového serveru součástí placených služeb. V případě hostingu s
databází bude například jistě v zájmu providera, aby vaše data ochránil
jak před zneužitím, tak i před ztrátou. Pokud si databázový server
spravujete sami, asi taky budete chtít data nějakým způsobem ochránit.
Konečně, existuje celá řada více či méně povedených nástrojů a
utilit pro zálohování dat, které mohou fungovat bez zásahu uživatele, a
které navíc mohou mít jednu či více z následujících schopností:
Tomu se budeme podrobně věnovat příště. Teď je potřeba říci, že
dostupné prostředky se pochopitelně budou lišit případ od případu.
Jestliže jste správcem serveru s právy superuživatele, máte samozřejmě
k dispozici mnohem více možností než pokud máte na témže serveru
hosting s jednou databází. Rovněž je třeba rozlišovat podle množství
zálohovaných dat: pokud databáze denně přijme deset řádků do dvou
tabulek, bude zálohování zcela jistě jednodušší než pro databázi s
desítkami tisíc změn denně.
Doufám, že jsem Vás přesvědčil, že zálohování se nedá odbýt jedním řádkem kódu a že je potřeba tyto věci znát. Pokud ano, můžete se těšit na další díl seriálu, který bude zaměřen již více na praxi.