mysql dump
Linuksa

Przewodnik po używaniu MySQLDump do tworzenia kopii zapasowych baz danych

By Jean-Luc Pircard , on 16 lutego, 2024 , updated on 16 lutego, 2024 - 4 minutes to read
Notez-moi

Tworzenie kopii zapasowych baz danych to kluczowy krok zapewniający bezpieczeństwo i integralność danych. Spośród wielu dostępnych narzędzi MySQLDump wyróżnia się prostotą i wydajnością. Ten przewodnik pomoże Ci zrozumieć, jak używać MySQLDump do tworzenia kopii zapasowych baz danych MySQL.

Co to jest MySQLDump?

MySQLDump to narzędzie do tworzenia kopii zapasowych baz danych MySQL. Generuje plik zawierający wszystkie dyrektywy SQL niezbędne do odtworzenia bazy danych identycznej ze stanem, w jakim znajdowała się w momencie tworzenia kopii zapasowej. Narzędzie to jest szeroko stosowane od ponad piętnastu lat, szczególnie ze względu na jego zdolność do zarządzania dużymi ilościami danych.

Jak korzystać z MySQLDump?

Opcje MySQLDump

MySQLDump oferuje wiele opcji dostosowywania procesu tworzenia kopii zapasowych. Opcja „–opt” jest domyślnie włączona w nowoczesnych wersjach MySQLDump. Ta opcja udostępnia następujące opcje:

  • –dodaj-upuszczaną tabelę : Dodaje dyrektywy umożliwiające czyszczenie tabel przed ich ponownym utworzeniem. Przydatne do ponownego wstrzyknięcia pliku poprzez nadpisanie starych wersji tabel, które mogą już znajdować się w bazie danych.
  • –dodaj blokady : Dodaje polecenia blokujące tabele podczas ich zapisywania; nie da się wówczas odczytać ani zapisać na nim danych w tym samym czasie, gdy wprowadzane są dane, co pozwala uniknąć spowolnienia wstrzykiwania.
  • –opcje tworzenia : Dodaje polecenia tworzenia tabeli. Nie moglibyśmy się bez tego obejść.
  • –wyłącz-klawisze : Ta opcja przyspiesza wstrzykiwanie danych, zapewniając, że indeksy zostaną utworzone dopiero po wstrzyknięciu wszystkich wierszy. Tyle że działa to tylko z nieunikalnymi indeksami tabel MyISAM. A ponieważ zamiast MyISAM powinieneś używać silnika InnoDB, tak naprawdę nie obchodzi nas to…
  • –wkładka rozszerzona : Ta opcja jest niezbędna. Łączy wiele wstawień w jedno polecenie INSERT.
  • –stoły blokujące : Ta opcja ma na celu zagwarantowanie integralności zapisywanych danych poprzez blokowanie tabel podczas odczytu. Wrócę do tego punktu, ponieważ jest on problematyczny.
  • –szybki : Domyślnie, gdy mysqldump zajmuje się tabelą, próbuje pobrać wszystkie dane z pamięci przed zapisaniem ich zawartości. Z tą różnicą, że jeśli masz bardzo duże tabele, nie zmieszczą się one w pamięci RAM. Opcja „–quick” zapobiega ładowaniu wszystkiego do pamięci.
  • –set-charset : Żąda dodania dyrektywy SET NAMES ze wskazaniem użytego kodowania znaków. Nie je chleba.

Problem z opcją „–lock-tables”.

Opcja „–lock-tables” może być problematyczna, gdy jest używana w środowisku produkcyjnym. W efekcie ta opcja blokuje tabele podczas odczytu, co może uniemożliwić Twojej aplikacji manipulowanie danymi na czas wykonywania MySQLDump. Aby rozwiązać ten problem, zaleca się wyłączenie tej opcji za pomocą opcji „–skip-lock-tables” i dodanie opcji „–single-transaction”, aby zapewnić integralność pobieranych danych.

Które bazy danych wykonać kopię zapasową za pomocą MySQLDump?

Kuszące może być użycie opcji „–all-databases” w celu utworzenia kopii zapasowej wszystkich baz danych na serwerze. Jednak taka praktyka może być problematyczna, ponieważ format tabel używanych przez MySQL może zmieniać się z jednej wersji na drugą. Ponadto posiadanie jednego dużego pliku zawierającego wszystkie tabele dla wszystkich baz danych może skomplikować jego użycie. Dlatego zaleca się utworzenie osobnych plików dla każdej bazy danych.

Wyzwalacze, procedury i zdarzenia

Domyślnie MySQLDump zapisuje wyzwalacze. Jeśli używasz procedur składowanych i zdarzeń, musisz dodać odpowiednie opcje „–routines” i „–events”.

Trochę bezpieczeństwa z MySQLDump

Należy pamiętać, że przekazywanie hasła użytkownika za pomocą wiersza poleceń może być ryzykowną praktyką. Aby tego uniknąć, możesz przekazać hasło w następujący sposób: MYSQL_PWD=”hasło” mysqldump -u użytkownik podstawowy > base.sql

Wniosek

MySQLDump to potężne i elastyczne narzędzie do tworzenia kopii zapasowych baz danych MySQL. Rozumiejąc i prawidłowo korzystając z jego opcji, możesz zapewnić bezpieczeństwo i integralność swoich danych. Pamiętaj, że tworzenie kopii zapasowych danych to kluczowy krok w zarządzaniu bazami danych.

Jean-Luc Pircard

Jean-Luc Pircard

Je suis un passionné de l'informatique qui aime les défis et les nouvelles technologies. J'aime découvrir de nouveaux systèmes et s'améliorer constamment.

Comments

Leave a comment

Your comment will be revised by the site if needed.