Das mysqlpump-Dienstprogramm wurde mit MySQL 5.7 eingeführt und ist eine schnellere Alternative zum älteren mysqldump-Dienstprogramm, das in früheren Versionen verfügbar ist. Obwohl es über ähnliche Funktionen wie mysqldump verfügt, wird das Dienstprogramm mysqlpump verwendet, um mithilfe von Parallelität ein Backup großer Datenbanken zu erstellen, das im älteren Dienstprogramm mysqldump nicht verfügbar ist. Es kann Backups der gesamten Datenbank oder nur einige ausgewählte Objekte erfordern.
Was ist mysqlpump?
Mysqlpump wurde in MySQL 5.7 eingeführt und ist ein Client-Dienstprogramm, das logische Backups durchführt, bei denen eine Reihe von SQL-Anweisungen erstellt wird, die ausgeführt werden können, um das ursprüngliche Datenbankobjekt wiederherzustellen. Es löst das Problem von langsamen Backups in mysqldump über die Unterstützung von Parallelität und Multithreading. Einige Datenbanken enthalten Terabyte an Daten, sodass der Export von Daten in eine einfache Textdatei zu lange dauern kann. Das Dienstprogramm mysqlpump verwendet mehrere Threads parallel, um Daten viel schneller in eine Textdatei zu übertragen. Da es vor Jahren eingeführt wurde, haben die MySQL-Datenbankentwickler in den letzten Jahren Verbesserungen vorgenommen, um ein stabileres mysqlpump-Dienstprogramm und mehr Optionen anzubieten. Obwohl es schneller ist, verfügt das mysqlpump-Dienstprogramm nicht über alle in mysqldump verfügbaren Optionen, sodass es nur verwendet wird, wenn Administratoren einen schnellen Export einer MySQL-Datenbank und seiner Daten benötigen.
Installation von mysqlpump
Wenn Sie MySQL 5.7 oder höher haben, haben Sie bereits Zugriff auf mysqlpump. Das Dienstprogramm wird mit der MySQL-Datenbankengine ausgeliefert, sodass keine Installation erforderlich ist. Wenn Sie eine frühere Version von MySQL haben, können Sie mysqlpump nicht verwenden, aber mysqldump ist eine praktikable Alternative.
Unabhängig davon, ob Sie MySQL unter Windows oder Linux verwenden, ist das Dienstprogramm mysqlpump mit der MySQL-Datenbankengine verfügbar. Sie können sie verwenden, indem Sie das Befehlszeilen-Dienstprogramm in Windows oder Linux öffnen und „mysqlpump“ mit den zahlreichen Parameteroptionen eingeben, um die Art und Weise anzupassen, wie das Dienstprogramm Daten exportiert.
Grundlegende Verwendung und Beispiele für mysqlpump
Wenn MySQL auf Ihrem Server installiert ist, können Sie über die Befehlszeile auf mysqlpump zugreifen. Öffnen Sie die Befehlszeile in Windows oder Linux und Sie können ein Datenbankschema mit dem folgenden Befehl exportieren:
mysqlpump --all-databases --user=root --password > full_backup.sql
Der obige Befehl exportiert alle Datenbankschemata in die Datei full_backup.sql. Der Benutzername und das Passwort, die Sie verwenden, müssen Zugriff auf die Datenbanken haben, die Sie exportieren möchten. Stellen Sie also sicher, dass Sie über ein Konto mit hohen Berechtigungen verfügen, wenn Sie das Dienstprogramm mysqlpump verwenden.
Wenn Sie bereits bei MySQL authentifiziert sind, können Sie auch Datenbankschemata ohne Angabe eines Benutzernamens und Passworts löschen:
mysqlpump --all-databases > full_backup.sql
Wenn Sie eine einzelne Datenbank lieber ablegen möchten, können Sie den folgenden Befehl verwenden:
mysqlpump myDB
Der obige Befehl exportiert das Datenbankschema und seine Daten für myDB. Sie können mehrere Datenbanken exportieren, indem Sie jeden Datenbanknamen durch ein Leerzeichen trennen.
Administratoren möchten gelegentlich nur bestimmte Tabellen in eine Datenbank exportieren. Die Ausgabe von Tabellendaten mit mysqlpump kann mit dem folgenden Befehl durchgeführt werden:
mysqlpump myDB Customer Order
Im obigen Beispiel exportiert die mysqlpump-Anweisung die Kunden- und Bestelltabellen aus der myDB-Datenbank. Beachten Sie, dass die Tabellennamen durch ein Leerzeichen getrennt sind.
Unternehmensadministratoren arbeiten mit Differential- und inkrementellen Backups, um jedes Mal kein vollständiges Backup zu erstellen. Differenzielle Backups enthalten alle Daten, die seit dem letzten vollständigen Backup geändert wurden. Ein inkrementelles Backup speichert alle Daten, die seit dem letzten Backup geändert wurden, entweder inkrementell oder vollständig. Diese beiden Backup-Typen sind mit mysqlpump nicht möglich, sodass das Dienstprogramm nur zum vollständigen oder teilweisen Backup von Datenbanken und ihren Objekten verwendet werden kann.
Erweiterte Nutzung von mysqlpump
Das Dienstprogramm mysqlpump bietet einige Optionen für eine erweiterte Nutzung. Der erste ist die komprimierte Ausgabe. Bei großen Datenbanken reduziert die Verwendung von komprimiertem Output die Menge an Laufwerkskapazität, die zum Speichern von Backup-Dateien erforderlich ist. Dies ist besonders in Unternehmensumgebungen nützlich, in denen mehrere große Dateien den ganzen Monat über für vollständige Backups gespeichert werden.
Sie müssen bei der Verwendung von mysqlpump einen Kompressionsalgorithmus angeben. Sie können LZ4 verwenden, das hauptsächlich für Geschwindigkeit verwendet wird. Der zlib-Algorithmus ist bei Administratoren, die gzip oder den zlib-Wrapper verwenden, beliebter. In diesem Beispiel wird der zlib-Algorithmus verwendet, um eine gzip-Datei auszugeben:
mysqlpump --compress --compress-output=zlib myDB > myDB_compressed.sql.gzip
Um konform zu bleiben, müssen gespeicherte Backups verschlüsselt werden. Daten im Ruhezustand, d. h. sie müssen auf einem Laufwerk gespeichert werden, müssen verschlüsselt werden, wenn es sich um sensible personenbezogene Daten (PII), Finanzdaten oder andere Daten handelt, die den Compliance-Vorschriften unterliegen. In diesem Beispiel wird der mysqlpump-Befehl gepaspelt und verwendet OpenSSL, um verschlüsselte Ausgaben zu erstellen:
mysqlpump --all-databases | openssl enc -aes-256-cbc -k yourpassword > backup.xb.enc
Ein Aspekt von mysqlpump, der es für Administratoren vorteilhaft macht, ist die Fähigkeit, Tabellen und Datenbanken parallel zu löschen, was bedeutet, dass es mehrere Computerprozesse zum Exportieren von Daten verwenden kann. Stellen Sie sich parallele Deponien als mehrere Exporte vor, die gleichzeitig stattfinden, anstatt darauf zu warten, dass jedes Objekt nacheinander abgeschlossen wird. Durch die Verwendung paralleler Verarbeitung beschleunigen Administratoren das Backup-Verfahren.
Um Parallelität mit mysqlpump zu verwenden, müssen Sie die Anzahl der Threads definieren, die während des Exports verwendet werden. Die Standardeinstellung ist zwei, aber Sie können mehr definieren. Die folgende Aussage verwendet vier Threads, um zwei Tabellen – Kunde und Bestellung – aus der myDB-Datenbank zu exportieren:
Mysqlpump -default-parallelism=4 myDB Customer Order > full_backup.sql
mysqlpump versus mysqldump
Die Parallelitätsoption in mysqlpump ist in mysqldump nicht verfügbar, sodass Administratoren mit mysqlpump schnellere Backup-Geschwindigkeiten erhalten. Der Vorteil von mysqlpump sind schnellere Backups in einer großen Unternehmensumgebung. Anstatt mehrere Minuten für die Durchführung eines Backups zu benötigen, könnte die Parallelität in mysqlpump die Zeit, die für die Sicherung von Daten benötigt wird, auf mehrere Minuten verkürzen.
Nicht jede Option in mysqldump ist in der neueren mysqlpump verfügbar, und Sie müssen mindestens MySQL 5.7 installiert haben, um sie zu verwenden. Beim Import wird keine Parallelität verwendet, sodass Sie nicht den Vorteil haben, dass Sie Daten schnell importieren können. Administratoren können alternative Dienstprogramme zum Importieren von Daten verwenden.
Fazit
Backups sind ein wesentlicher Bestandteil der Datenbankverwaltung, und das mysqlpump-Dienstprogramm beschleunigt den Prozess viel schneller. Für schnelle Backups einer gesamten Datenbank oder einiger Objekte in einer Datenbank exportiert mysqlpump Schemata und Daten, verschlüsselt und komprimiert sie und verwendet mehrere Threads mit Parallelität. Verwenden Sie sie immer, wenn Sie ein vollständiges Backup einer Datenbank erstellen oder mehrere Tabellen exportieren müssen.