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

Samouczek dotyczący tworzenia kopii zapasowych i przywracania (eksportowania i importowania) baz danych MySQL

phpMyAdmin może być używany do łatwego eksportowania lub tworzenia kopii zapasowych baz danych MySQL lub MariaDB. Jeśli jednak rozmiar bazy danych jest bardzo duży, prawdopodobnie nie będzie to dobry pomysł. phpMyAdmin umożliwia użytkownikom zapisanie zrzutu bazy danych jako pliku lub wyświetlenie na ekranie, co obejmuje eksportowanie instrukcji SQL z serwera i przesyłanie danych przez wolniejsze połączenie sieciowe lub Internet do komputera użytkownika. Ten proces spowalnia proces eksportowania, wydłuża czas blokowania bazy danych, a tym samym niedostępność MySQL lub MariaDB, spowalnia serwer i może po prostu spowodować awarię serwera Apache HTTPD, jeśli zbyt wiele przychodzących połączeń internetowych obciąża zasoby systemu.

Lepszym sposobem tworzenia kopii zapasowych i eksportowania bazy danych MySQL lub MariaDB jest wykonywanie zadania lokalnie na serwerze, dzięki czemu dane z tabel mogą być natychmiast zrzucane na dysk lokalny bez opóźnień. W ten sposób prędkość eksportu będzie szybsza i skróci czas blokowania dostępu do bazy danych MySQL lub MariaDB lub tabeli. Ten samouczek jest przewodnikiem na temat tworzenia kopii zapasowych (eksportowania) i przywracania (importowania) baz danych MySQL lub MariaDB na samym serwerze bazy danych za pomocą mysqldump i mysql narzędzia. Zasadniczo istnieją dwie metody tworzenia kopii zapasowych MySQL lub MariaDB , jedna to kopiowanie wszystkich plików tabel (pliki *.frm, *.MYD i *.MYI) lub użycie mysqlhotcopy narzędzie, ale działa tylko dla tabel MyISAM. Poniższy samouczek skoncentruje się na mysqldump, który działa zarówno dla tabel MyISAM, jak i InnoDB.

Jak wyeksportować, wykonać kopię zapasową lub zrzucić bazę danych MySQL lub MariaDB

Aby wyeksportować bazę danych MySQL lub MariaDB do pliku zrzutu, po prostu wpisz następującą składnię polecenia w powłoce. Możesz użyć Telnet lub SSH, aby zdalnie zalogować się do komputera, jeśli nie masz dostępu do skrzynki fizycznej.

mysqldump -u username -ppassword database_name > dump.sql

Zastąp nazwę użytkownika z ważnym identyfikatorem użytkownika MySQL lub MariaDB, hasło z poprawnym hasłem użytkownika (WAŻNE:bez spacji po -p i haśle, w przeciwnym razie mysqldump poprosi o hasło, ale potraktuje hasło jako nazwę bazy danych, więc tworzenie kopii zapasowej się nie powiedzie) i nazwa_bazy z rzeczywistą nazwą bazy danych, którą chcesz wyeksportować. Na koniec możesz umieścić dowolną nazwę dla wyjściowego pliku zrzutu SQL, tutaj był dump.sql .

Całe dane, tabele, struktury i baza danych database_name zostanie zarchiwizowana w pliku tekstowym SQL o nazwie dump.sql z powyższym poleceniem.

Jak wyeksportować tylko struktury bazy danych MySQL lub MariaDB

Jeśli nie potrzebujesz już danych w tabelach bazy danych (mało prawdopodobne), po prostu dodaj –no-data przełącz, aby wyeksportować tylko struktury tabel. Na przykład składnia to:

mysqldump -u username -ppassword --no-data database_name > dump.sql

Jak wykonać kopię zapasową tylko danych bazy danych MySQL lub MariaDB

Jeśli chcesz tylko utworzyć kopię zapasową danych, użyj –no-create-info opcja. Przy tym ustawieniu zrzut nie spowoduje ponownego utworzenia bazy danych, tabel, pól i innych struktur podczas importowania. Użyj tego tylko wtedy, gdy masz pewność, że masz zduplikowane bazy danych o tej samej strukturze, w których wystarczy odświeżyć dane.

mysqldump -u username -ppassword --no-create-info database_name > dump.sql

Jak zrzucić kilka baz danych MySQL lub MariaDB do pliku tekstowego

–bazy danych opcja pozwala określić więcej niż 1 bazę danych. Przykładowa składnia:

mysqldump -u username -ppassword --databases db_name1 [db_name2 ...] > dump.sql

Jak zrzucić wszystkie bazy danych w MySQL lub MariaDB Server

Aby zrzucić wszystkie bazy danych, użyj –all-databases i nie trzeba już podawać nazwy bazy danych.

mysqldump -u username -ppassword --all-databases > dump.sql

Jak wykonać kopię zapasową tabel InnoDB online

Utwórz kopię zapasową bazy danych nieuniknione, ponieważ serwer MySQL lub MariaDB jest niedostępny dla aplikacji, ponieważ podczas eksportowania wszystkie tabele uzyskały globalną blokadę odczytu przy użyciu funkcji FLUSH TABLES WITH READ LOCK na początku zrzutu do zakończenia. Tak więc, chociaż instrukcje READ mogą być kontynuowane, wszystkie instrukcje INSERT, UPDATE i DELETE będą musiały stać w kolejce z powodu zablokowanych tabel, tak jakby MySQL lub MariaDB były wyłączone lub zablokowane. Jeśli korzystasz z InnoDB, –pojedyncza transakcja jest sposobem na zminimalizowanie czasu blokowania do prawie zerowego, tak jak przy wykonywaniu kopii zapasowej online. Działa poprzez odczytywanie współrzędnych dziennika binarnego, gdy tylko blokada zostanie nabyta, a następnie blokada jest natychmiast zwalniana.

Składnia:

mysqldump -u username -ppassword  --all-databases --single-transaction > dump.sql

Jak przywrócić i zaimportować bazę danych MySQL lub MariaDB

Możesz przywrócić z phpMyAdmin, używając zakładki Importuj. Aby przyspieszyć, prześlij plik zrzutu na serwer MySQL lub MariaDB i użyj następującego polecenia, aby zaimportować bazy danych z powrotem na serwer MySQL lub MariaDB.

mysql -u username -ppassword database_name < dump.sql
Jeśli chcesz połączyć się zdalnie z serwerami MySQL lub MariaDB na innym serwerze, dodaj -h nazwa-serwera-lub-adres-IP do polecenia.

Import i eksport bazy danych MySQL lub MariaDB jest nie tylko ważny dla odzyskania danych w przypadku katastrofy, ale także zapewnia łatwy sposób migracji lub przeniesienia na inny serwer, na przykład podczas zmiany dostawcy hostingu. Należy jednak pamiętać, że jeden powszechny problem – kodowanie zestawu znaków. Nowsze wydanie mysqldump używa UTF8 jako domyślnego zestawu znaków, jeśli nic nie jest określone, podczas gdy starsze wersje (zwykle starsze niż 4.1) używają Latin1 jako domyślnego zestawu znaków. Jeśli zestaw znaków bazy danych to Latin1 i zrzucasz je w sortowaniu UTF8, dane mogą stać się po prostu śmieciami, zniekształconymi lub nieczytelnymi (często zdarza się to w przypadku bloga WordPress). W takim przypadku użyj –default-character-set=charset_name możliwość określenia zestawu znaków lub przekonwertowania bazy danych na UTF8.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 60 milionów wpisów, wybierz wpisy z określonego miesiąca. Jak zoptymalizować bazę danych?

  2. Najważniejsze błędy, których należy unikać podczas replikacji MySQL

  3. Rozwiązywanie problemów z replikacją MySQL:część druga

  4. Jak podłączyć mysql workbench do uruchamiania mysql w dockerze?

  5. MySQL i NoSQL:pomóż mi wybrać właściwy