Oto podsumowanie tego, co zrozumiałem między oboma narzędziami do tworzenia kopii zapasowych.
Definicja mysqldump podana na stronie podręcznika
Narzędzie klienta mysqldump wykonuje logiczne kopie zapasowe, tworząc zestaw instrukcji SQL, które można wykonać w celu odtworzenia oryginalnych definicji obiektów bazy danych i danych tabeli. Zrzuca jedną lub więcej baz danych MySQL w celu wykonania kopii zapasowej lub przeniesienia na inny serwer SQL. Polecenie mysqldump może również generować dane wyjściowe w formacie CSV, innym tekście rozdzielanym lub formacie XML.
Mysqldump jest bardzo łatwy w użyciu, a także bardzo prosta składnia. Kiedy to wykonamy, konwertuje wszystkie wiersze na zapytania SQL i drukuje je na standardowym wyjściu. Możemy przekierować to wyjście do pliku wyjściowego (>) lub używając opcji - plik wyników.
Domyślnie mysqldump nie zrzuca tabel schematu_informacji i nigdy nie przyjmuje schematu wydajności. Główną wadą mysqldump jest to, że używa tylko jednego wątku podczas tworzenia kopii zapasowej i przywracania.
Mysqlpump to kolejne narzędzie, które zostało wprowadzone w MySQL 5.7 z kilkoma dodatkowymi funkcjami w porównaniu z mysqldump
Definicja mysqlpump podana na stronie podręcznika
Narzędzie klienta mysqlpump wykonuje logiczne kopie zapasowe, tworząc zestaw instrukcji SQL, które można wykonać w celu odtworzenia oryginalnych definicji obiektów bazy danych i danych tabeli. Zrzuca jedną lub więcej baz danych MySQL w celu wykonania kopii zapasowej lub przeniesienia na inny serwer SQL.
Główne cechy to
Przetwarzanie równoległe (wielowątkowe) w celu przyspieszenia tworzenia kopii zapasowej
Wskaźnik postępu
Zrzucanie kont użytkowników jako (tworzenie, przyznawanie instrukcji nie jako wstawek do bazy danych systemu MySQL)
Domyślnie mysqlpump nie wykonuje kopii zapasowych systemowych baz danych, takich jak schemat informacyjny, schemat wydajności i niektóre tabele systemowe MySQL, chyba że wyraźnie to zaznaczono.
Posiada również opcje –include-database, –exclude-database, –include-table, –exclude-table z dopasowaniem wzorca (%).
Te opcje są wygodniejsze dla użytkowników, którzy chcą wykonać kopię zapasową tylko kilku obiektów z całego zestawu danych.
Ogólnie mysqlpump dzieli swoją pracę na porcje, a każda z nich jest przypisana do wielowątkowej kolejki.
Ta kolejka wielowątkowa jest przetwarzana przez N wątków (domyślnie używa 2 wątków).
Możemy zdefiniować wiele wątków za pomocą tej opcji –default-parallelism i –parallel-schemas.
podczas przywracania używa pojedynczego wątku, który jest taki sam jak mysqldump, brakuje przywracania równoległego.
Jako dodatek mamy jeszcze jedno narzędzie, które wykonuje równoległe tworzenie kopii zapasowych i przywracanie (gdzie brakuje mysqlpump i mysqldump), które nazywa się mydumper i myloader . Będzie to bardzo przydatne podczas przywracania ogromnych zestawów danych.
Więcej szczegółowych informacji i przydatnych opcji tych narzędzi można znaleźć w tym blogu
mysqldump vs. mysqlpump vs. mydumper .