<šablona x-if=visible><šablona x-if=$isMobile()>
MySQL a MariaDB obsahují nástroj themysqldump pro zjednodušení procesu vytváření zálohy databáze nebo systému databází. Pomocí mysqldump
vytvoří logickou zálohu . Tento nástroj můžete použít pouze v případě, že je váš databázový proces přístupný a běží.
Pokud vaše databáze z nějakého důvodu není přístupná, můžete místo toho vytvořitfyzickou zálohu , což je kopie struktury systému souborů, která obsahuje vaše data.
Pokyny v této příručce platí pro MySQL i MariaDB. Pro zjednodušení bude název MySQL použit pro oba.
Než začnete
-
Pro spuštění zálohy budete potřebovat funkční instalaci MySQL nebo MariaDB a uživatele databáze. Nápovědu k instalaci naleznete v dokumentaci Linode MySQL.
-
Budete potřebovat root přístup k systému nebo uživatelský účet s
sudo
privilegia.
Zálohování databáze
mysqldump
Obecná syntaxe příkazu je:
mysqldump -u [username] -p [databaseName] > [filename]-$(date +%F).sql
mysqldump
vyzve k zadání hesla před zahájením procesu zálohování.- V závislosti na velikosti databáze může dokončení chvíli trvat.
- Záloha databáze bude vytvořena v adresáři, ve kterém je příkaz spuštěn.
-$(date +%F)
přidá k názvu souboru časové razítko.
Příklady případů použití zahrnují:
-
Vytvořte zálohu celého systému správy databáze (DBMS):
mysqldump --all-databases --single-transaction --quick --lock-tables=false > full-backup-$(date +%F).sql -u root -p
-
Zálohujte konkrétní databázi. Nahraďte
db1
s názvem databáze, kterou chcete zálohovat:mysqldump -u username -p db1 --single-transaction --quick --lock-tables=false > db1-backup-$(date +%F).sql
-
Zálohujte jednu tabulku z libovolné databáze. V níže uvedeném příkladu
table1
je exportován z databázedb1
:mysqldump -u username -p --single-transaction --quick --lock-tables=false db1 table1 > db1-table1-$(date +%F).sql
Zde je rozpis mysqldump
možnosti příkazu použité výše:
--single-transaction
:Před uložením dat ze serveru zadejte příkaz BEGIN SQL.--quick
:Vynutit ukládání tabulek řádek po řádku. To poskytuje zvýšenou bezpečnost pro systémy s malou RAM a/nebo velkými databázemi, kde by ukládání tabulek do paměti mohlo být problematické.--lock-tables=false
:Nezamykejte tabulky pro relaci zálohování.
Automatizovat zálohování pomocí cronu
Záznamy lze přidávat do /etc/crontab
pravidelně plánovat zálohování databáze.
-
Vytvořte soubor s přihlašovacími údaji uživatele root MySQL, který bude provádět zálohování. Všimněte si, že systémový uživatel, v jehož domovském adresáři je tento soubor uložen, nemusí mít žádný vztah k žádnému uživateli MySQL.
- Soubor:/ home/example_user/.mylogin.cnf
1 2 3
[client] user = root password = MySQL root user's password
-
Omezit oprávnění souboru pověření:
chmod 600 /home/example_user/.mylogin.cnf
-
Vytvořte soubor úlohy cron. Níže je uveden příklad úlohy cron pro zálohování celého systému správy databáze každý den v 1:00:
- Soubor:/ etc/cron.daily/mysqldump
1
0 1 * * * /usr/bin/mysqldump --defaults-extra-file=/home/example_user/.my.cnf -u root --single-transaction --quick --lock-tables=false --all-databases > full-backup-$(date +\%F).sql
Další informace o cronu najdete na manuálových stránkách thecron(8) a cron(5).
Obnovení zálohy
Obecná syntaxe příkazu obnovení je:
mysql -u [username] -p [databaseName] < [filename].sql
-
Obnovte celou zálohu DBMS. Budete vyzváni k zadání hesla uživatele root MySQL:
Tím se přepíší všechna aktuální data v databázovém systému MySQLmysql -u root -p < full-backup.sql
-
Obnovte výpis jedné databáze. Aby bylo možné data importovat, musí již existovat prázdná nebo stará cílová databáze a uživatel MySQL, kterému příkaz spouštíte, musí mít do této databáze přístup pro zápis:
mysql -u [username] -p db1 < db1-backup.sql
-
Obnovte jednu tabulku, musíte mít připravenou cílovou databázi pro příjem dat:
mysql -u dbadmin -p db1 < db1-table1.sql
Další informace
Další informace o tomto tématu můžete získat v následujících zdrojích. Přestože jsou poskytovány v naději, že budou užitečné, vezměte prosím na vědomí, že nemůžeme ručit za přesnost nebo aktuálnost externě hostovaných materiálů.
- Stránka Metody zálohování databáze MySQL
- mysqldump – Program pro zálohování databáze, referenční příručka MySQL