Ať chceme nebo ne, většinou se MySQL používá ve spojení s weby. Jak zálohovat
data v tomto případě?
13.1.2006 06:00 | Petr Zajíc |
přečteno 3244×
Je na čase zaměřit se na zálohovací potřeby těch uživatelů, kteří pracují s
MySQL na webech. Ne snad, že by to byla nějaká zvláštní skupina databázových
guru, ale kombinace webu a MySQL je pro mnoho prezentací prostě typická. Takže,
jak mohou zálohovat data z MySQL majitelé prezentací či internetových obchodů?
Jak vidíme, je jejich prostředí pro běh MySQL specifické. Pojďme se tedy
podívat, s čím lze počítat.
Typické hostingové prostředí, v němž je provozována MySQL na webu, vypadá
nějak takto:
Dále je typické, že na stejném databázovém serveru jsou umístěny databáze
mnoha jiných uživatelů a že webový server obhospodařovává požadavky několika
webů. Skutečností tedy je, že v takovém prostředí spíše více věcí nesmíte než můžete. Přesto i tady máte určité možnosti,
jak smysluplně zálohovat.
O tomto webovém nástroji na správu
databáze MySQL máme na našem webu seriál od Michala Čihaře. V
naprosté většině případů se Vám podaří tento nástroj nainstalovat a
nakonfigurovat bez komplikací, protože nemá žádné zvláštní požadavky na systém
(požaduje vlastně jen webový server, PHP a databázi MySQL). Je rovněž možné, že
jej budete mít na serveru již k dispozici přímo od hostingové
společnosti.
Příjemnou vlastností PhpMyAdminu je to, že umí exportovat data z MySQL do
několika nejběžnějších formátů - a Vy tak můžete databázi zálohovat. Mezi
formáty, do nichž můžete data zazálohovat, a které jsou z tohoto hlediska
zajímavé patří:
PHPMyAdmin má sice skvělé možnosti, ale někdy jej buď nemůžeme použít, nebo
potřebujeme něco vlastního - třeba zálohovat jen kus tabulky. V tom případě nám
nezbyde než si zálohovací proceduru napsat sami. Pokud se do toho budete chtít
pustit, možná zjistíte, že bude užitečné prostudovat nějaký kus hotového kódu. U
PHPMyAdmina si tak například můžete prohlédnout skript export.php, a rovněž
všechny skripty ve složce libraries/export. Možná zjistíte, že se tam najde něco
užitečného i pro Vás.
Úmyslně nechci zabíhat do tajů skriptovacích jazyků, takže jen stručně. Pokud máte k dispozici adresář s právy zápisu a nějaký ten skriptovací jazyk, můžete si zálohování napsat sami. Struktura skriptu přitom bude velmi jednoduchá, zejména pokud budete chtít zálohovat do textových souborů. Pro většinu jazyků (PHP, Python, Perl) bude postup dosti podobný. Může to (psáno v pseudojazyce) vypadat nějak takto:
otevřít spojení na databázi
vytvořit textový soubor
vybrat data z tabulky
dokud jsou k dispozici
další data {
načíst řádek dat
procházet sloupce
a {
data ze sloupce zkonvertovat na text
zkonvertovaná data uložit do souboru
uložit do souboru oddělovač polí
}
uložit
do souboru znak konce řádku
}
zavřít vytvořený soubor
zavřít spojení
na databázi
nahlásit úspěch
Pozn.: Jak se připojit k MySQL z několika nejběžnějších skriptovacích a programovacích jazyků si budeme v tomto seriálu ještě ukazovat.
Můžete při sestavování něčeho podobného nějak narazit? Vlastně ani ne, pokud
si dáte pozor na následující věci:
Nemusí Vám vždy vyhovovat ruční spouštění záloh. Možná budete požadovat, aby
byl Vámi napsaný skript prováděn v zadaném čase automaticky. K tomu slouží
nástroj cron
obsažený snad v každém UNIX-Like systému. Cron zřejmě nebudete moci na
webhostingu nastavovat sami, ale možná budete moci požádat správce serveru, aby
Vám nějaký ten skript přidal do existujících automaticky spouštěných úloh, snad
jednou denně.
Pokud Vám však ani to nestačí, je třeba vědět, že existuje ještě pružnější cesta. Když se nad tím zamyslíte, je zálohovací skript sekvencí příkazů jako každý jiný. To znamená, že když máte skript http://www.nejakyserver.cz/zalohujdata.php, můžete si jej spustit z libovolného prohlížeče na světě a můžete tak svoje cenná data zazálohovat. Pokud například vlastníte v libovolném systému, do něhož máte přístup nějaký textový prohlížeč, můžete napsat příkaz ve stylu:
links
http://www.nejakyserver.cz/zalohujdata.php
A skript se na vzdáleném systému provede. "Juknutí" na server můžete
naplánovat třeba pomocí nějakého cronu na systému, k němuž máte přístup.
Příště si ukážeme, jak na zálohování dat v situaci, kdy máte plný přístup na server, na němž MySQL běží.