Mariadb-dump/Anwendung
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