Pokud chceme exportovat všechny databáze tak to provedeme příkazem:
Kód: Vybrat vše
mysqldump -u uzivatel -p --all-databases --skip-lock-tables> vsechny_databaze.sql
Rovnou je možné zapnout komprimaci:
Kód: Vybrat vše
mysqldump -u uzivatel -p --all-databases --skip-lock-tables | gzip -1 -c> vsechny_databaze.sql.gz
Pokud vynecháme přepínač "--skip-lock-tables", tak se export může zaseknout na nějaké uzamknuté tabulce a snadno nastane chyba při následném importu nedokončeného exportu. Je dobré myslet i na ty uzamknuté tabulky a zajistit jejich odemčení (opravu)
Pokud chceme exportovat jen nějaké konkrétní tabulky konkrétní databáze, tak použijeme příkaz:
Kód: Vybrat vše
mysqldump -u uzivatel -p jmeno_databaze tabulka1 tabulka2 tabulka3 > export_tabulek.sql
Import provedeme příkazem:
Kód: Vybrat vše
mysql -u uzivatel -p -h localhost jmeno_databaze < databaze.sql
Import gzipovaného souboru provedeme příkazem:
Kód: Vybrat vše
zcat databaze.sql.gz | mysql -u uzivatel -p databaze
A teď ta slíbená míra komprese:
Stupeň komprese |
čas |
velikost souboru |
zápis na disk (Mbit/s) |
čistý dump |
160 |
3302 |
12.6 |
1 |
104 |
957 |
72 |
3 |
120 |
906 |
29.2 |
6 |
154 |
825 |
5 |
9 |
311 |
805 |
2.5 |
Exportován byl běžný obsah s cca 20ti jednotlivými databázemi. Disk byl 15krpm SAS2 disk. Databáze i export běžel na stejném disku. Je to velmi častý případ u malých serverů. Tedy klasický plotnový, ale velmi rychlý. Z naměřených dat vyplývá, že běžný dump je nejen objemově velký a také trvá déle než ten samý dump se zaplou kompresí. Vysvětlení je prosté. Exportnímu programu se do cesty plete velké množství zápisů a čtení. Pokud procesor komprimuje data, tak jich je pro zápis potřeba výrazně méně a tedy čtení databáze může probíhat rychleji.
Z měření vyplývá, že nejvýhodnější pro dump je stupeň komprese 1. Dump je hotový nejrychleji a tedy server není zbytečně zatížen delší čas. Zároveň se množství zapasaných/přenesených dat zmenšilo víc jak 3x. Vyšší stupně komprese již výrazně navyšují čas běhu dumpu a úspora dat již není tak výrazná.