So dumpen Sie bestimmte Tabellen mit mysqldump: Vollständige Anleitung mit Beispielen und bewährten Methoden

1. Einführung

MySQL ist ein Datenbankverwaltungssystem, das von vielen Websites und Anwendungen verwendet wird. Unter seinen Werkzeugen ist der Befehl „mysqldump“ besonders wichtig, wenn Datenbank‑Backups oder Migrationen durchgeführt werden. Insbesondere, wenn Sie nur bestimmte Tabellen einer großen Datenbank sichern möchten, ist dieser Befehl äußerst nützlich.

In diesem Artikel erklären wir ausführlich wie man bestimmte Tabellen mit dem mysqldump‑Befehl exportiert. Der Leitfaden ist so gestaltet, dass er für Anfänger leicht verständlich ist, führt aber auch Optionen für Fortgeschrittene und fortgeschrittene Anwendungstechniken ein.

2. Grundsyntax des mysqldump‑Befehls

Zunächst werfen wir einen Blick auf die grundlegende Verwendung des mysqldump‑Befehls. Dieser Befehl wird verwendet, um die Struktur und die Daten einer gesamten Datenbank oder bestimmter Tabellen zu exportieren (zu sichern).

Grundsyntax

Durch Angabe von Benutzername, Passwort, Datenbankname und Tabellennamen, wie unten gezeigt, können Sie eine bestimmte Tabelle sichern.

mysqldump -u username -p database_name table_name > output_file.sql
  • -u : Gibt den Benutzernamen an, der zum Zugriff auf die Datenbank verwendet wird
  • -p : Gibt das Passwort an (Sie werden zur Eingabe aufgefordert)
  • database_name : Der Name der zu exportierenden Datenbank
  • table_name : Die zu exportierende spezifische Tabelle
  • > output_file.sql : Gibt die Ausgabedatei an

Häufig verwendete Optionen

  • --single-transaction : Stellt die transaktionale Konsistenz beim Sichern von InnoDB‑Tabellen sicher
  • --skip-lock-tables : Vermeidet das Sperren von Tabellen während des Backups

3. Wie man bestimmte Tabellen exportiert

Export einer einzelnen Tabelle

Um nur eine bestimmte Tabelle zu sichern, geben Sie den Tabellennamen nach dem Datenbanknamen an. Im folgenden Beispiel wird nur die Tabelle users exportiert.

mysqldump -u root -p my_database users > users_dump.sql

Dieser Befehl speichert die Struktur und die Daten der Tabelle users in der Datenbank my_database in die Datei users_dump.sql.

Export mehrerer Tabellen

Wenn Sie mehrere Tabellen gleichzeitig sichern möchten, geben Sie die Tabellennamen durch Leerzeichen getrennt an.

mysqldump -u root -p my_database users orders products > multiple_tables_dump.sql

Im obigen Beispiel werden die drei Tabellen users, orders und products gleichzeitig exportiert.

Export mithilfe einer Tabellliste

Beim Export einer großen Anzahl von Tabellen kann das manuelle Angeben jedes Tabellennamens umständlich sein. In solchen Fällen können Sie den Befehl SHOW TABLES oder ein Skript verwenden, um automatisch eine Liste der zu exportierenden Tabellen zu erzeugen.

mysql -u root -p my_database -N -e "SHOW TABLES LIKE 'hoge%'" > table_list.txt
mysqldump -u root -p my_database `cat table_list.txt` > partial_dump.sql

Diese Methode ermöglicht es Ihnen, effizient nur die Tabellen zu sichern, die einem angegebenen Muster entsprechen.

4. Optionen und erweiterte Nutzung

mysqldump bietet verschiedene Optionen, mit denen Sie flexibel Backups nach Ihren Bedürfnissen erstellen können. Im Folgenden finden Sie mehrere Optionen für bestimmte Szenarien.

Nur die Struktur exportieren

Wenn Sie die Daten nicht benötigen und nur die Tabellenstruktur sichern möchten, verwenden Sie die Option --no-data.

mysqldump -u root -p my_database --no-data users > users_structure.sql

Dieser Befehl exportiert nur die Struktur der Tabelle users und enthält keine Daten.

Nur Daten exportieren

Umgekehrt, wenn Sie nur die Tabellendaten exportieren möchten, verwenden Sie die Option --no-create-info.

mysqldump -u root -p my_database --no-create-info users > users_data.sql

Dieser Befehl lässt die Tabellenstruktur weg und exportiert nur die Daten.

Daten basierend auf bestimmten Bedingungen exportieren

Durch die Verwendung der Option --where können Sie nur die Daten exportieren, die bestimmten Bedingungen entsprechen. Zum Beispiel, um nur Zeilen zu exportieren, bei denen id größer als 100 ist, verwenden Sie den folgenden Befehl:

mysqldump -u root -p my_database users --where="id > 100" > users_filtered_dump.sql

Damit können Sie nur die notwendigen Daten aus einer großen Datenbank extrahieren und sichern.

5. Praktische Anwendungsbeispiele

Anwendungsfall 1: Sichern einer einzelnen Tabelle

Zum Beispiel, wenn Sie nur die Tabelle salary innerhalb der Datenbank employees sichern möchten, verwenden Sie den folgenden Befehl:

mysqldump -u root -p employees salary > salary_dump.sql

Anwendungsfall 2: Sichern von Daten mit Bedingungen

Um nur einen bestimmten Datenbereich zu exportieren, verwenden Sie die Option --where. Zum Beispiel, um nur Zeilen zu sichern, bei denen die id in der Tabelle users größer als 100 ist:

mysqldump -u root -p my_database users --where="id > 100" > users_partial_dump.sql

6. Wichtige Hinweise und bewährte Verfahren

Probleme mit Tabellenverriegelungen

Beim Einsatz von mysqldump können Tabellen gesperrt werden, wodurch andere Vorgänge nicht ausgeführt werden können. Das kann insbesondere in Produktionssystemen problematisch sein. Um dieses Problem zu vermeiden, wird empfohlen, die Option --single-transaction zu verwenden. Für InnoDB-Tabellen verbessert die Kombination mit der Option --skip-lock-tables die Sicherheit zusätzlich.

Umgang mit großen Datenmengen

Wenn Ihre Datenbank eine sehr große Datenmenge enthält, kann der Dump-Vorgang lange dauern. Ein effektiver Ansatz ist, gzip zu verwenden, um den Dump in Echtzeit zu komprimieren.

mysqldump -u root -p my_database | gzip > backup_$(date +%Y%m%d).sql.gz

Dieser Befehl komprimiert die Daten während des Dump-Vorgangs und hilft, Speicherplatz zu sparen.

7. Fazit

In diesem Artikel haben wir erklärt, wie man mit dem mysqldump-Befehl bestimmte Tabellen exportiert. Wir haben alles von der grundlegenden Befehlsverwendung über bedingte Dumps, reine Struktur- und reine Datenexporte bis hin zu effizienten Skripttechniken behandelt. mysqldump ist ein sehr leistungsfähiges Werkzeug und ermöglicht bei richtiger Anwendung ein reibungsloses Durchführen von Datenbank-Backups und -Migrationen.

Im nächsten Artikel werden wir tiefer in fortgeschrittene mysqldump-Optionen eintauchen und sie mit anderen Backup-Tools vergleichen.