Zum Inhalt springen

Mariadb-dump/Anwendung

Aus Foxwiki
Version vom 16. Februar 2025, 16:05 Uhr von Dirkwagner (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Anwendung == <syntaxhighlight lang=“bash„ highlight=“1“ line> </syntaxhighlight> Mariadb-dump wird häufig verwendet, um eine Sicherungskopie einer gesamten Datenbank zu erstellen shell> mariadb-dump db_name > backup-file.sql Sie können die Sicherungsdatei folgendermaßen wieder in den Server laden shell> mariadb db_name < backup-file.sql Oder folgendermaßen shell> mariadb -e „source /path-to-backup/backup-file.sql“ db_name mariadb…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Anwendung

Mariadb-dump wird häufig verwendet, um eine Sicherungskopie einer gesamten Datenbank zu erstellen

shell> mariadb-dump db_name > backup-file.sql

Sie können die Sicherungsdatei folgendermaßen wieder in den Server laden

shell> mariadb db_name < backup-file.sql

Oder folgendermaßen

shell> mariadb -e „source /path-to-backup/backup-file.sql“ db_name

mariadb-dump ist auch sehr nützlich, um Datenbanken durch Kopieren von Daten von einem MariaDB-Server auf einen anderen zu füllen

shell> mariadb-dump --opt db_name | mariadb --host=remote_host -C db_name

Es ist möglich, mehrere Datenbanken mit einem Befehl zu sichern

shell> mariadb-dump --databases db_name1 [db_name2 ...] > my_databases.sql

Um alle Datenbanken zu sichern, verwenden Sie die Option --all-databases

shell> mariadb-dump --all-databases > all_databases.sql

Für InnoDB-Tabellen bietet mariadb-dump eine Möglichkeit, eine Online-Sicherung zu erstellen

shell> mariadb-dump --all-databases --single-transaction all_databases.sql

Diese Sicherung erwirbt zu Beginn des Dumps eine globale Lesesperre für alle Tabellen (mit FLUSH TABLES WITH READ LOCK)

  • Sobald diese Sperre erworben wurde, werden die Koordinaten des Binärprotokolls gelesen und die Sperre wird aufgehoben
  • Wenn lange Aktualisierungsanweisungen ausgeführt werden, während die FLUSH-Anweisung ausgegeben wird, kann der MariaDB-Server blockiert werden, bis diese Anweisungen abgeschlossen sind
  • Danach ist der Speicherauszug frei von Sperren und stört Lese- und Schreibvorgänge in den Tabellen nicht mehr
  • Wenn die Aktualisierungsanweisungen, die der MariaDB-Server erhält, kurz sind (in Bezug auf die Ausführungszeit), sollte die anfängliche Sperrfrist selbst bei vielen Aktualisierungen nicht spürbar sein

Für die Wiederherstellung zu einem bestimmten Zeitpunkt (auch als „Roll-Forward“ bekannt, wenn Sie eine alte Sicherung wiederherstellen und die Änderungen seit dieser Sicherung wiedergeben müssen) ist es oft nützlich, das Protokoll zu rotieren oder zumindest die Koordinaten des binären Protokolls zu kennen, denen der Speicherauszug entspricht

shell> mariadb-dump --all-databases --master-data=2 > all_databases.sql

Oder

shell> mariadb-dump --all-databases --flush-logs --master-data=2 > all_databases.sql

Die Optionen --master-data und --single-transaction können gleichzeitig verwendet werden, was eine bequeme Möglichkeit bietet, eine Online-Sicherung für die Verwendung vor einer Point-in-Time-Recovery zu erstellen, wenn Tabellen mit der InnoDB-Speicher-Engine gespeichert werden

Problembehebung