sql >> Databáze >  >> RDS >> Mysql

Použijte mysqldump k zálohování MySQL nebo MariaDB

<š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áze db1 :

      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.

  1. 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
  2. Omezit oprávnění souboru pověření:

    chmod 600 /home/example_user/.mylogin.cnf
    
  3. 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 MySQL

      mysql -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

  1. Generování stromu založeného na hloubce z hierarchických dat v MySQL (žádné CTE)

  2. Jaký je rozdíl mezi funkcemi RANK() a DENSE_RANK() v oracle?

  3. Psaní velkých písmen jmen osob v programování

  4. Co je T-SQL?