Erweiterte Backups für MySQL-Datenbanken

Wenn sie fertig sind MySQL-Datenbank-Backups, ist es üblich, den Befehl zu verwenden mysqldump keine Optionen. Dieser Befehl bietet jedoch viele interessante Optionen, mit denen Sie erweiterte Backups durchführen können.

Standardmäßig ist die Der Befehl mysqldump erzeugt eine Kopie der SQL-Struktur aller Tabellen in der Datenbank angegeben, in einer Textdatei sql. Um nur eine oder mehrere Tabellen einzuschließen, geben Sie deren Namen nach dem Datenbanknamen ein.

Aus dem Terminalfenster im mysql-Verzeichnis:

 # Einzeltabellen-Backup $ mysqldump -user = user --password = Tabellendatenbankschlüssel> backup_sql
 # Drei Tabellen sichern $ mysqldump -user = user --password = Datenbankschlüssel table1 table2 table3> backup_sql
Beispiele für 1 oder 3 Tabellen.

1. Einige Tabellen vom Backup ausschließen


Um eine bestimmte Tabelle nicht in das Backup aufzunehmen, müssen wir sie mit der Option --ignore-table angeben, deren Wert angegeben werden muss

Wenn Sie beispielsweise ein Backup einer Datenbank namens commerce erstellen, aber nicht möchten, dass eine Tabelle namens sales eingeschlossen wird, führen Sie den folgenden Befehl aus:

 $ mysqldump --user = user - password = password --ignore-table = Merchant.sales Händler> backup_back.sql 
Mit anderen Worten, kopieren Sie die gesamte Handelsdatenbank mit Ausnahme der Verkaufstabelle. Wenn wir mehrere Tabellen ausschließen möchten, müssen wir den folgenden Befehl verwenden:
 $ mysqldump --user = Benutzer --password = Passwort --ignore-table = commerce.sales --ignore-table = commerce.products --ignore-table = commerce.commerce Preise> backup_copy.sql
(Um mehrere Tabellen auszuschließen, geben Sie ihre Namen mit so vielen --ignore-table-Optionen an)

2. Begrenzung der Anzahl der Datensätze in jeder Tabelle


Standardmäßig kopiert der Befehl mysqldump alle Datensätze aus allen Tabellen. Wenn Sie die Datensätze zuvor filtern möchten, fügen Sie die Option --where hinzu, mit der Sie die Bedingung vom Typ WHERE angeben können, die den SELECT-Abfragen hinzugefügt wird, die zum Extrahieren aller Datensätze erstellt werden:
 $ mysqldump --user = user --password = password --where = "Alter> 18 UND Alter backup_back.sql 
Wenn wir nur einige Datensätze aus der Datenbank extrahieren möchten, zum Beispiel die ersten 500
 $ mysqldump --user = user -password = password --where = "1 limit 500" database> backup.sql
Sie würden mit einem Limit von 500 extrahiert.

3. Kopieren Sie nur die Struktur der Tabellen, aber nicht deren Daten


Standardmäßig ist die Befehl mysqldump gibt sowohl die Struktur der Tabellen als auch alle ihre Informationen aus. Wenn Sie nur die Struktur der Tabellen und Spalten ausgeben möchten, verwenden Sie die Option --no-data. Sie können also eine andere Datenbank genauso erstellen, aber leer:
 $ mysqldump --user = user --password = password --no-data database> backup_sql
Normalerweise werden die Einfügungen beim Generieren in einer einzigen Anweisung gruppiert, um Codezeilen wie folgt zu sparen:
 INSERT INTO Tabelle VALUES (1, 'name1'), (2, 'name2'), (3, 'name3');
Dies ist ein Verhalten, das bei älteren Systemen, die lange Leitungen nicht verarbeiten können, zu Fehlern führen kann. Ebenso können Probleme mit Ihrem Texteditor auftreten, wenn Sie versuchen, eine Sicherungsdatei zu öffnen, die diese langen Zeilen enthält.

Wenn wir mit diesem Fall konfrontiert sind, können wir die Option hinzufügen --extended-insert = false um jedes INSERT mit einer eigenen Anweisung ausführen zu lassen:

 $ mysqldump --user = user -password = password --extended-insert = false database> backup_sql
Das Ergebnis wird folgendes sein:
 INSERT INTO Tabelle VALUES (1, 'name1'); INSERT INTO Tabelle VALUES (2, 'name2'); INSERT INTO Tabelle VALUES (3, 'name3'); 

Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave