2015-06-30 15 views
6

Potrzebuję kopii zapasowej bazy danych Drupal jest ogromna. Więc ma ponad 1500 tabel (nie wiń mnie, to jest rzecz Drupala) i ma 10 GB.Jak mogę bezpiecznie utworzyć kopię zapasową ogromnej bazy danych?

Nie mogłem tego zrobić z PHPMyAdmin, Właśnie dostałem komunikat o błędzie, gdy zaczął budować plik .sql.

Chcę się upewnić, że nic nie zepsuje, nie odejdzie od serwera ani nic takiego, gdy spróbuję wykonać kopię zapasową.

Zamierzałem spróbować mysqldump na moim serwerze, a następnie skopiować plik lokalnie, ale zdałem sobie sprawę, że może to spowodować nieprzewidziane problemy. Więc moje pytanie brzmi: czy można bezpiecznie używać mysqldump na tak wielu tabelach naraz i nawet jeśli jest to bezpieczne, czy istnieją jakiekolwiek problemy, które tak ogromny plik mógłby w przyszłości doprowadzić do odbudowy bazy danych?

Dzięki za wprowadzenie.

+0

Zrzuć go z muszli. – MilanG

+0

sprawdź to: http://moinne.com/blog/ronald/mysql/backup-large-databases-with-mysqldump lub https://blog.serverdensity.com/backing-up-large-mysql-databases/ –

Odpowiedz

10

jest bezpieczny w użyciu mysqldump na wielu stołach na raz

biegnę codzienne kopie zapasowe z mysqldump na serwery dosłownie 10x ten rozmiar: ponad 15000 tabel, ponad 100 GB.

Jeśli nie zbadał zawartość pliku wyprodukowanego przez mysqldump ... zalecana, ponieważ aby zobaczyć jego wyjście jest, aby zrozumieć, dlaczego jest to iskrobezpieczny narzędzie Kopia zapasowa:

Kopie zapasowe są czytelny dla człowieka i składają się wyłącznie z niezbędnych instrukcji SQL, aby utworzyć bazę danych dokładnie taką, jak kopia zapasowa.

W tej postaci, ich zawartość jest łatwo manipulować za pomocą narzędzi takich jak sed wszechobecne i grep i perl, które mogą być wykorzystywane w celu wyrwać tylko jedną tabelę z pliku do odtworzenia, na przykład.

Jeśli przywracanie nie powiedzie się, błąd wskaże numer wiersza w pliku, w którym wystąpił błąd. Zwykle wiąże się to z błędnym zachowaniem w wersji serwera, na którym utworzono kopię zapasową (np. MySQL Server 5.1 umożliwiał tworzenie widoków w niektórych sytuacjach, w których sam serwer nie akceptowałby wyjścia z własnej instrukcji SHOW CREATE VIEW. nie uważany - przez ten sam serwer - być ważna definicja widoku, ale nie była to wada mysqldump lub w pliku kopii zapasowej, per se)

Przywracanie z kopii zapasowej mysqldump tworzone jest. nie błyskawica, ponieważ serwer musi wykonać wszystkie te instrukcje SQL, ale z punktu widzenia bezpieczeństwa, twierdzę, że nie ma bezpieczniejszej alternatywy, ponieważ jest to kanoniczne narzędzie do tworzenia kopii zapasowych i wszelkie błędy mogą być znalezione i naprawione na podstawie dużej bazy użytkowników, jeśli nic więcej.

Nie używaj opcji --force, z wyjątkiem sytuacji awaryjnych.Spowoduje to, że kopia zapasowa pominie wszelkie błędy napotkane na serwerze podczas wykonywania kopii zapasowej, co spowoduje, że kopia zapasowa będzie niekompletna bez praktycznie żadnego ostrzeżenia. Zamiast tego znajdź i napraw błędy, które wystąpią. Typowe błędy podczas tworzenia kopii zapasowej odnoszą się do widoków, które nie są już poprawne, ponieważ odwołują się do tabel lub kolumn, które zostały przemianowane lub usunięte lub gdzie użytkownik, który pierwotnie utworzył widok, został usunięty z serwera. Napraw te, poprawnie definiując widok.

Przede wszystkim przetestuj kopie zapasowe, przywracając je na innym serwerze. Jeśli tego nie zrobiłeś, nie masz naprawdę kopii zapasowych.

Plik wyjściowy można skompresować, zwykle zasadniczo za pomocą plików gzip/pigz, bzip2/bpzip2, xz/pixz lub zpaq. Są one wymienione w przybliżonej kolejności według ilości zaoszczędzonego miejsca (gzip oszczędza co najmniej, Zpaq oszczędza najwięcej) i prędkości (gzip jest najszybszy, Zpaq jest najwolniejszy). pigz, pbzip2, pixz i zpaq skorzystają z wielu rdzeni, jeśli tak. Pozostali mogą używać tylko jednego rdzenia naraz.

+0

Doskonała odpowiedź, dokładnie ten detal, którego szukałem. Dzięki Michael. Twoja wiedza może prawdopodobnie rozwiązać problem, który miałem po użyciu MySQLDump, tutaj jest link do pytania, jeśli masz wolny moment, aby spojrzeć na http://stackoverflow.com/questions/31141585/why-have-a-lost- tabele podczas przenoszenia z phpmyadmin-do-local-mysql-workbench –

1

Zastosowanie mysqlhotcopy jest dobrze pracy z dużymi bazami danych

  • tylko Pracuj MyISAM i archiwum Stoły.
  • Działa tylko na serwerze, na którym przechowywana jest baza danych.
  • To narzędzie jest przestarzałe w MySQL 5.6.20 i usunięty w MySQL 5,7
Powiązane problemy