Export a Import databází v mariadb a jak nastavit míru komprese

Odeslat odpověď


Odpoveď na tuto otázku je nutná pro rozlišení automatizovaných pokusů o registraci.
Smajlíci
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :| :mrgreen: :geek: :ugeek:

BBCode je zapnutý
[img] je zapnutý
[url] je zapnuté
Smajlíci jsou zapnutí

Přehled tématu
   

Rozšířit náhled Přehled tématu: Export a Import databází v mariadb a jak nastavit míru komprese

Export a Import databází v mariadb a jak nastavit míru komprese

od RoliD » pon 29. srp 2016 21:48:37

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á.

Nahoru