LINUXSOFT.cz Přeskoč levou lištu

ARCHIV



   

> MySQL (55) - zálohování MySQL z pohledu správce

Správce databázového serveru má větší možnosti, ale i větší zodpovědnost. Jak se tedy postavit k zálohování dat?

20.1.2006 06:00 | Petr Zajíc | Články autora | přečteno 33580×

Jak asi tušíte, dnes se zaměříme na zálohování MySQL databází z pohledu správce systému. Budeme tedy uvažovat o situacích, kdy máme daný server na starosti a můžeme, když je to potřeba, pracovat jako superuživatel. Jak uvidíme, i zde je více možností zálohování.

Příkaz BACKUP TABLE

Superuživatel samozřejmě může využít všechny možnosti, o nichž jsme hovořili v předchozích dvou dílech seriálu. Rovněž může použít některé další nástroje. Patří mezi ně příkaz BACKUP TABLE, který slouží k zálohování jediné tabulky. Jeho syntaxe je následující:

BACKUP TABLE [názevtabulky] TO '/cesta/k/zaloze'

A upřímně řečeno, používám jej dost nerad. Tento příkaz má následující výhody:

  • Umožňuje elegantně pořídit kopii jediné tabulky
  • Je principielně dosti rychlý
  • Dá se velmi snadno zapamatovat

Ale rovněž následující nezanedbatelné nevýhody:

  • Při zápisu do cílového adresáře jste omezeni právy systému (tato nevýhoda pochopitelně není pro superuživatele podstatná)
  • Funguje to jen s tabulkami typu MyISAM.
  • Příkaz je v dokumentaci označen jako zastaralý.
  • Neumožňuje přepsat existující data
  • A konečně - situace, v níž byste chtěli zálohovat jedinou tabulku je z hlediska správy serveru poměrně vzácná.

Jak to funguje? Jednoduše. Na serveru jsou pro každou tabulku typu MyISAM vyhrazeny až tři soubory:

Soubor
Obsahuje
*.frm
Definice tabulky MyISAM. Jsou zde uloženy typy a velikosti jednotlivých sloupců tabulky.
*.MYD
Samotná data pro tabulku.
*.MYI
Indexy pro danou tabulku

Pozn.: Seznam není vyčerpávající. V MySQL 5 může napříkad existovat soubor *.TRG s definicí triggerů pro danou tabulku, ale to teď není podstatné.

Když přijde příkaz pro zálohování pomocí BACKUP TABLE, databáze se postará aby do dané tabulky nemohl nikdo zapisovat a pak prostě vykopíruje soubory frm a MYD do cílového adresáře. Indexy se nekopírují, neboť je lze z obnovených dat poměrně snadno zrekonstruovat. Jak vidíme, není tedy za příkazem BACKUP TABLE žádná velká alchymie.

Příkaz mysqldump

Tento užitečný příkaz vytvoří zálohu dat tak, že sestaví SQL příkazy, které povedou k vytvoření dané tabuky nebo tabulek. Příkad:

mysqldump -u root test lidi > ~/lidi.sql

Povede k tomu, že bude vytvořen v domovském adresáři soubor lidi.sql se zhruba následujícím obsahem:

-- MySQL dump 10.10
--
-- Host: localhost    Database: test
-- ------------------------------------------------------

<zkráceno>

--
-- Table structure for table `lidi`
--

DROP TABLE IF EXISTS `lidi`;
CREATE TABLE `lidi` (
  `jmeno` varchar(20) collate utf8_czech_ci default NULL,
  `narozendne` date default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;

--
-- Dumping data for table `lidi`
--

LOCK TABLES `lidi` WRITE;
INSERT INTO `lidi` VALUES ('Jarda','1970-01-01'),('Jana','1975-12-31'),('Petr','1980-10-10');
<zkráceno>
UNLOCK TABLES;

Je tedy vytvořena jak definice tabulky, tak i data. Příkaz mysqldump má poměrně hodně přepínačů, s nimiž bude dobré se seznámit, pokud to myslíte s tímto příkazem vážně a dá se použít i na jiné typy tabulek než MyISAM. Osobně ho mám docela rád, protože produkuje výstup, který je člověku čitelný, textový a který se dá rozumně zkomprimovat. Lze se také zmínit o tom, že vygenerované příkazy se mohou náramně hodit při exportu struktury a dat na jiný typ DBMS.

Skript mysqlhotcopy

Ten mám rád ze všech nejméně. Nejdřív ale, co to dělá. Funguje v podstatě tak jako BACKUP TABLE s tím rozdílem, že může zálohovat více tabulek nebo i více databází. Rovněž se v dokumentaci praví že je rychlejší než BACKUP TABLE a není označen jako zastaralý.

Teď něco nevýhod:

  • Skript je v PERLu, což znamená, že musíte být schopni spouštět perlové skripty, aby to fungovalo.
  • Skript vyžaduje závislosti: Data::Dumper a některé další. Většinou je budete v systému mít.
  • Není obecně přítomen ve Windows distribucích MySQL

Neříkám, že mysqlhotcopy nemáte používat nebo že to nebude fungovat, ale raději bych zálohování svěřil odzkoušenému binárnímu programu než skriptu (je to věc názoru, nekamenujte mě v diskuzi).

Závěr

Zdaleka jsme nevyčerpali všechny možnosti zálohování. V praxi bude zvolená strategie nejspíš nějakou kombinací uvedených způsobů. Přitom, když se budete rozhodovat co a jak zálohovat, Vám mohou pomoci následující otázky:

  • Co by se stalo, kdybych právě o tato data přišel?
  • Jak často by se měla právě tato databáze či tabulka zálohovat?
  • Kolik (historicky) záloh těchto dat budu potřebovat?
  • Jaký způsob zálohování bude nejrychlejší/nejvýkonnější/nejbezpečnější

Jak vidíte, je toho dost. Cílem bylo seznámit Vás s nejběžnějšími technikami zálohování s tím, že svoji cestu si musí najít každý sám.

Verze pro tisk

pridej.cz

 

DISKUZE

binary log 22.1.2006 20:44 Jakub Velkoborský




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

28.11.2018 23:56 /František Kučera
Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1

12.11.2018 21:28 /Redakce Linuxsoft.cz
22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář

6.11.2018 2:04 /František Kučera
Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář

4.10.2018 21:30 /Ondřej Čečák
LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář

18.9.2018 23:30 /František Kučera
Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář

9.9.2018 14:15 /Redakce Linuxsoft.cz
20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business. Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář

12.8.2018 16:58 /František Kučera
Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář

16.7.2018 1:05 /František Kučera
Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

13.12.2018 10:57 / Jan Mareš
Re: zavináč

2.12.2018 23:56 / František Kučera
Sraz

5.10.2018 17:12 / Jakub Kuljovsky
Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?

20.9.2018 10:04 / Jan Ober
Jaký kurz a software by jste doporučili pro začínajcího kodéra?

20.9.2018 10:00 / Jan Ober
Re: Gimp

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2022) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze