Pokročilé zálohy pro databáze MySQL

Až budou hotové Zálohování databáze MySQL, je běžné používat příkaz mysqldump žádné možnosti. Tento příkaz má však mnoho zajímavých možností, které vám umožňují provádět pokročilé zálohy.

Standardně je Příkaz mysqldump generuje kopii struktury sql všech tabulek v databázi uvedeno v textovém souboru sql. Chcete -li zahrnout pouze jednu nebo více tabulek, zadejte jejich názvy za název databáze.

Z okna terminálu v adresáři mysql:

 # Zálohování jedné tabulky $ mysqldump -user = uživatel --password = klíč tabulky tabulky> backup_sql
 # Zálohujte tři tabulky $ mysqldump -user = uživatel --password = tabulka klíče databáze1 tabulka2 tabulka3> záložní_sql
Příklady 1 nebo 3 tabulek.

1. Vyloučení některých tabulek ze zálohy


Abychom do zálohy nezahrnuli konkrétní tabulku, musíme ji označit volbou --ignore-table, jejíž hodnota musí být uvedena

Pokud provádíte například zálohování databáze s názvem commerce, ale nechcete, aby byla zahrnuta tabulka s názvem sales, spusťte následující příkaz:

 $ mysqldump --user = uživatel -heslo = heslo --ignore -table = merchant.sales obchodník> backup_back.sql 
Jinými slovy, zkopírujte celou obchodní databázi kromě prodejní tabulky. Pokud chceme vyloučit několik tabulek, musíme použít následující příkaz:
 $ mysqldump --user = uživatel --password = heslo --ignore-table = commerce.sales --ignore-table = commerce.products --ignore-table = commerce. commerce ceny> backup_copy.sql
(Chcete-li vyloučit více tabulek, zadejte jejich názvy s tolika možnostmi --ignore-table)

2. Omezení počtu záznamů v každé tabulce


Ve výchozím nastavení zkopíruje příkaz mysqldump všechny záznamy ze všech tabulek. Pokud chcete dříve filtrovat záznamy, přidejte možnost --where, která vám umožní určit podmínku typu WHERE, která je přidána k dotazům SELECT, které jsou provedeny k extrahování všech záznamů:
 $ mysqldump --user = uživatel --password = heslo --where = "věk> 18 A věk backup_back.sql 
Pokud chceme z databáze extrahovat pouze některé záznamy, například prvních 500
 $ mysqldump --user = uživatel -password = heslo --where = "1 limit 500" databáze> backup.sql
Byly by extrahovány s limitem 500.

3. Zkopírujte pouze strukturu tabulek, ale ne jejich data


Standardně je příkaz mysqldump ukládá jak strukturu tabulek, tak všechny jejich informace. Pokud vás zajímá pouze dumping struktury tabulek a sloupců, použijte možnost --no-data. Můžete tedy vytvořit další databázi přesně stejnou, ale prázdnou:
 $ mysqldump --user = uživatel --password = heslo-databáze bez dat> backup_sql
Normálně jsou generované vložky seskupeny do jednoho příkazu, aby se uložily řádky kódu následujícím způsobem:
 VLOŽTE DO HODNOTY tabulky (1, 'name1'), (2, 'name2'), (3, 'name3');
Toto je chování, které může u starších systémů neschopných zpracovávat dlouhé řádky způsobit chyby. Podobně můžete při pokusu o otevření záložního souboru, který obsahuje tyto dlouhé řádky, narazit na problémy s textovým editorem.

Pokud se potýkáme s tímto případem, můžeme tuto možnost přidat --extended-insert = false aby každý INSERT běžel s vlastním příkazem:

 $ mysqldump --user = uživatel -password = heslo --extended -insert = falešná databáze> backup_sql
Výsledkem bude následující:
 VLOŽTE DO HODNOT tabulky (1, 'name1'); VLOŽTE DO HODNOTY tabulky (2, 'name2'); VLOŽTE DO HODNOTY tabulky (3, 'name3'); 

Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod
wave wave wave wave wave