Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Użyj mysqldump do tworzenia kopii zapasowych MySQL lub MariaDB

MySQL i MariaDB zawierają narzędzie mysqldump, które upraszcza proces tworzenia kopii zapasowej bazy danych lub systemu baz danych. Korzystanie z mysqldump tworzy logiczną kopię zapasową . Możesz używać tego narzędzia tylko wtedy, gdy proces bazy danych jest dostępny i uruchomiony.

Jeśli Twoja baza danych jest z jakiegoś powodu niedostępna, możesz zamiast tego utworzyćfizyczną kopię zapasową , który jest kopią struktury systemu plików, która zawiera Twoje dane.

Instrukcje zawarte w tym przewodniku dotyczą zarówno MySQL, jak i MariaDB. Dla uproszczenia nazwa MySQL będzie używana w obu przypadkach.

Zanim zaczniesz

  • Do uruchomienia kopii zapasowej będziesz potrzebować działającej instalacji MySQL lub MariaDB oraz użytkownika bazy danych. Aby uzyskać pomoc dotyczącą instalacji, zapoznaj się z dokumentacją Linode MySQL.

  • Będziesz potrzebować dostępu root do systemu lub konta użytkownika z sudo przywileje.

Utwórz kopię zapasową bazy danych

mysqldump ogólna składnia polecenia to:

mysqldump -u [username] -p [databaseName] > [filename]-$(date +%F).sql
  • mysqldump prosi o hasło przed rozpoczęciem procesu tworzenia kopii zapasowej.
  • W zależności od rozmiaru bazy danych, ukończenie może trochę potrwać.
  • Kopia zapasowa bazy danych zostanie utworzona w katalogu, w którym uruchomiono polecenie.
  • -$(date +%F) dodaje znacznik czasu do nazwy pliku.

Przykładowe przypadki użycia to:

  • Utwórz kopię zapasową całego systemu zarządzania bazą danych (DBMS):

      mysqldump --all-databases --single-transaction --quick --lock-tables=false > full-backup-$(date +%F).sql -u root -p
    
  • Utwórz kopię zapasową określonej bazy danych. Zastąp db1 z nazwą bazy danych, której kopię zapasową chcesz utworzyć:

      mysqldump -u username -p db1 --single-transaction --quick --lock-tables=false > db1-backup-$(date +%F).sql
    
  • Utwórz kopię zapasową pojedynczej tabeli z dowolnej bazy danych. W poniższym przykładzie table1 jest eksportowany z bazy danych db1 :

      mysqldump -u username -p --single-transaction --quick --lock-tables=false db1 table1 > db1-table1-$(date +%F).sql
    

Oto podział mysqldump opcje poleceń użyte powyżej:

  • --single-transaction :Wydaj instrukcję BEGIN SQL przed zrzuceniem danych z serwera.
  • --quick :Wymuś zrzucanie tabel wiersz po wierszu. Zapewnia to dodatkowe bezpieczeństwo dla systemów z małą ilością pamięci RAM i/lub dużymi bazami danych, w których przechowywanie tabel w pamięci może stać się problematyczne.
  • --lock-tables=false :Nie blokuj tabel dla sesji kopii zapasowej.

Automatyzacja kopii zapasowych za pomocą crona

Wpisy można dodawać do /etc/crontab aby regularnie planować tworzenie kopii zapasowych baz danych.

  1. Utwórz plik do przechowywania danych logowania użytkownika root MySQL, który będzie wykonywał kopię zapasową. Zwróć uwagę, że użytkownik systemu, którego katalog domowy jest przechowywany w tym pliku, może nie być powiązany z żadnymi użytkownikami MySQL.

    Plik:/ home/przykładowy_użytkownik/.mojlogin.cnf
    1
    2
    3
    
    [client]
    user = root
    password = MySQL root user's password
  2. Ogranicz uprawnienia pliku poświadczeń:

    chmod 600 /home/example_user/.mylogin.cnf
    
  3. Utwórz plik zadania cron. Poniżej znajduje się przykładowe zadanie cron do tworzenia kopii zapasowej całego systemu zarządzania bazą danych codziennie o godzinie 1:00:

    Plik:/ 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

    Aby uzyskać więcej informacji o cronie, zobacz strony podręcznika cron(8) i cron(5).

Przywróć kopię zapasową

Ogólna składnia polecenia przywracania to:

mysql -u [username] -p [databaseName] < [filename].sql
  • Przywróć całą kopię zapasową DBMS. Zostaniesz poproszony o podanie hasła użytkownika root MySQL:
    Spowoduje to nadpisanie wszystkich bieżących danych w systemie bazy danych MySQL

      mysql -u root -p < full-backup.sql
    
  • Przywróć pojedynczy zrzut bazy danych. Pusta lub stara docelowa baza danych musi już istnieć, aby zaimportować dane, a użytkownik MySQL, do którego uruchamiasz polecenie, musi mieć dostęp do zapisu w tej bazie danych:

      mysql -u [username] -p db1 < db1-backup.sql
    
  • Przywróć pojedynczą tabelę, musisz mieć docelową bazę danych gotową do odbioru danych:

      mysql -u dbadmin -p db1 < db1-table1.sql
    

Więcej informacji

Dodatkowe informacje na ten temat można znaleźć w poniższych zasobach. Chociaż są one dostarczane w nadziei, że będą przydatne, należy pamiętać, że nie możemy ręczyć za dokładność ani aktualność materiałów hostowanych zewnętrznie.

  • Strona Metody tworzenia kopii zapasowych bazy danych MySQL
  • mysqldump — program do tworzenia kopii zapasowych baz danych, instrukcja obsługi MySQL

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zainstaluj MySQL na komputerze Mac

  2. Jak zaplanować zapytanie MySQL?

  3. Czy można wymusić sprawdzanie danych w MySQL za pomocą wyrażenia regularnego?

  4. Oblicz decyla w MySQL na podstawie sum

  5. Zapytanie MySQL, aby uzyskać najlepiej sprzedające się produkty