Zusammenfassung verschiedener Implementierungsmethoden zur Sicherung von MySQL-Datenbanken

Zusammenfassung verschiedener Implementierungsmethoden zur Sicherung von MySQL-Datenbanken

Dieser Artikel beschreibt verschiedene Möglichkeiten zur Implementierung einer MySQL-Datenbanksicherung. Teilen Sie uns die Einzelheiten zu Ihrer Information mit:

1. Verwenden Sie mysqldump zur Sicherung

1. Vollständiges Sichern aller Datenbanken

mysqldump -u root -p --all-databases > E:/all.sql

Vor MySQL 8 wurden gespeicherte Prozeduren und Ereignisse in den Tabellen mysql.proc und mysql.event gespeichert.

Ab MySQL 8 werden die Definitionen der entsprechenden Objekte im Datenwörterbuch gespeichert und diese Tabellen werden nicht gesichert.

Um gespeicherte Prozeduren und Ereignisse einzuschließen, verwenden Sie die folgende Anweisung:

mysqldump -u root -p --all-databases --routines --events > E:/all.sql

2. Zeitpunktbezogene Wiederherstellung

Um eine zeitpunktbezogene Wiederherstellung zu erhalten, sollten Sie --single-transaction und --master-data angeben.

--single-transaction Vor der Sicherung wird die Transaktionsisolationsebene auf den Modus „REPEATABLE READ“ gesetzt und „START TRANSACTION“ ausgeführt, um eine konsistente Sicherung bereitzustellen.

--master-data Gibt den Speicherort des Binärprotokolls des Servers in eine SQL-Datei aus.

mysqldump -u root -p --all-databases --routines --events --single-transaction --master-data > E:/all.sql

--master-data=2 bedeutet, dass beim Exportvorgang die Binlog- und POS-Punkte der aktuellen Bibliothek aufgezeichnet werden und diese Zeile in der Exportdatei kommentiert wird.

--master-data = 1 bedeutet, dass während des Exportvorgangs die Binlog- und POS-Punkte der aktuellen Bibliothek aufgezeichnet werden und diese Zeile in der Exportdatei nicht kommentiert wird.

3. Notieren Sie beim Exportieren aus der Bibliothek die Binärprotokollposition der Hauptbibliothek

mysqldump -u root -p --all-databases --routines --events --single-transaction --dump-slave > E:/all.sql

--dump-slave=2 bedeutet, dass beim Exportvorgang die Binlog- und POS-Punkte der Masterdatenbank aufgezeichnet werden und diese Zeile in der Exportdatei kommentiert wird.

--dump-slave = 1 bedeutet, dass während des Exportvorgangs die Binlog- und POS-Punkte der Masterdatenbank aufgezeichnet werden und diese Zeile in der Exportdatei nicht kommentiert wird.

4. Datenbank- und Tabellenexport festlegen

mysqldump -u root -p --databases Datenbank> E:/bak.sql
mysqldump -u root -p --databases Datenbank --tables Datentabelle> E:/bak.sql

5. Tabelle ignorieren

mysqldump -u root -p --databases Datenbank --ignore-table=database.datatable> E:/bak.sql

6. Zeilen angeben

mysqldump -u root -p --databases Datenbank --tables Datentabelle --where="Bedingung" > E:/bak.sql

Oder verwenden Sie „limit“, um den Ergebnissatz einzuschränken

mysqldump -u root -p --databases database --tables data table --where="Bedingung LIMIT Anzahl der Einträge" > E:/bak.sql

7. Remote-Server exportieren

mysqldump -u root -p -h Host-IP --alle Datenbanken --Routinen --Events --Trigger > E:/all.sql

8. Backup zum Zusammenführen von Daten mit anderen Servern

mysqldump -u root -p --databases Datenbank --skip-add-drop-table --replace > E:/bak.sql

--skip-add-drop-table: Schreibt die Drop-Table-Anweisung nicht in die Exportdatei.

--replace: verwendet zum Exportieren die „Replace into“-Anweisung anstelle der „Insert“-Anweisung.

2. Verwenden Sie mysqlpump zur Sicherung

1. Parallele Verarbeitung: Beschleunigen Sie den Sicherungsvorgang durch Angabe der Anzahl der Threads

mysqlpump --default-parallelism=8 > E:/all.sql

2. Sie können auch die Anzahl der Threads für jede Datenbank angeben

mysqlpump -u root -p --parallel-schemas=4:database --default-parallelism=2 > E:/all.sql

3. Datenbanken ausschließen oder einschließen

mysqlpump -u root -p --include-databases=%t > E:/bak.sql

Sichern Sie alle Datenbanken, die mit t enden. Mehrere Datenbanken werden durch Kommas getrennt. Datenbanknamen können die Platzhalter % oder _ verwenden.

Darüber hinaus gibt es ähnliche --include-events, --include-routines, --include-tables, --include-triggers, --include-users usw.

mysqlpump -u root -p --exclude-databases=a% > E:/bak.sql

Schließen Sie Datenbanken aus, die mit „from backup“ beginnen. Mehrere Datenbanken werden durch Kommas getrennt. Datenbanknamen können die Platzhalter % oder _ verwenden.

Darüber hinaus gibt es ähnliche Funktionen wie --exclude-events, --exclude-routines, --exclude-tables, --exclude-triggers, --exclude-users usw.

4. Backup-Benutzer

mysqlpump -u root -p --exclude-databases=% --users > E:/Benutzer.sql

Sie können bestimmte Benutzer über --exclude-users ausschließen

mysqlpump --exclude-databases=% --exclude-users=root --users > E:/Benutzer.sql

5. Komprimiertes Backup

Durch Verwendung von --compress-output=lz4 oder --compress-output=zlib

mysqlpump -u root -p --compress-output=lz4 > E:/all.lz4
mysqlpump -u root -p --compress-output=zlib > E:/all.zlib

Dekomprimieren Sie es mit der folgenden Anweisung

lz4_decompress E:/all.lz4 all.sql
zlib_decompress E:/all.zlib all.sql

3. Verwenden Sie mydumper zur Sicherung

mydumper muss separat installiert werden, offizielle Website: https://github.com/maxbube/mydumper/releases

1. Vollständige Sicherung

mydumper -u root --password=Passwort --outputdir Exportpfad

2. Sichern Sie eine separate Tabelle

mydumper -u root --password=Passwort-B Datenbank-T Datentabelle --Trigger --Events --Routinen --outputdir Exportpfad

3. Verwenden Sie reguläre Ausdrücke, um bestimmte Datenbanken zu sichern

mydumper -u root --password=Passwort --regex '^(?!(mysql|test))' --outputdir Exportpfad

Schließen Sie die MySQL- und Testdatenbanken vom Backup aus.

4. Große Tabellen sichern

mydumper -u root --password=Passwort-B Datenbank-T Datentabelle --Trigger --Events --Routinen --Rows=100000 -t 8 --trx-consistency-only --outputdir Exportpfad

--rows gibt an, in wie viele Zeilen die Tabelle unterteilt werden soll

--trx-consistency-only minimiert Sperren bei InnoDB.

-t gibt die Anzahl der Threads an

5. Komprimiertes Backup

mydumper -u root --password=Passwort-B Datenbank-T Datentabelle-t 8 --trx-consistency-only --compress --outputdir Exportpfad

6. Sichern Sie nur Daten

Verwenden Sie die Option --no-schemas, um das Schema zu überspringen und nur die Daten zu sichern.

mydumper -u root --password=Passwort-B Datenbank-T Datentabelle-t 8 --no-schemas --compress --trx-consistency-only --outputdir Exportpfad

4. Verwenden Sie normale Dateien zur Sicherung

Sie können die Dateien im Datenverzeichnis sichern, indem Sie sie direkt kopieren. Sie müssen MySQL zuerst herunterfahren, die Dateien kopieren und dann MySQL starten.

5. Verwenden Sie xtrabackup zur Sicherung

https://www.percona.com/downloads/XtraBackup/LATEST/

1. Vollständige Sicherung

xtrabackup --defaults-file=/etc/my.cnf --host=Host-IP --user=Benutzername --password=Passwort --port=Port --backup --parallel=3 --target-dir=Sicherungsverzeichnis

--defaults-file Datenbankkonfigurationsdatei

--backup Führt einen Sicherungsvorgang aus

--parallel Die Anzahl gleichzeitiger Threads während der Sicherung

--target-dir Das Verzeichnis für Sicherungsdateien

2. Inkrementelles Backup

xtrabackup --defaults-file=/etc/my.cnf \
--host=Host-IP \
--user=Benutzername\
--password=Passwort\
--port=3306 \
--Backup \
--parallel=3 \
--target-dir=Inkrementelles Backup-Verzeichnis\
--incremental-basedir=vollständiges Backup-Verzeichnis\

Inkrementelles Backup basiert auf Voll-Backup, --incremental-basedir verweist auf das Voll-Backup-Verzeichnis

Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „Zusammenfassung der Kenntnisse im Bereich MySQL-Indexoperationen“, „Zusammenfassung der Kenntnisse im Bereich MySQL-Allgemeinfunktionen“, „Zusammenfassung der Kenntnisse im Bereich MySQL-Protokolloperationen“, „Zusammenfassung der Kenntnisse im Bereich MySQL-Transaktionsoperationen“, „Zusammenfassung der Kenntnisse im Bereich MySQL-gespeicherte Prozeduren“ und „Zusammenfassung der Kenntnisse im Zusammenhang mit MySQL-Datenbanksperren“.

Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist.

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der Wissenspunkte zur Echtzeitsicherung der MySQL-Datenbank
  • Detaillierte Erläuterung der drei Möglichkeiten zum Sichern von MySQL
  • Mehrere Möglichkeiten zum Sichern einer MySql-Datenbank
  • Einführung in die MySQL-Datenbank: Detaillierte Erläuterung des Datenbanksicherungsvorgangs
  • Ausführliche Erläuterung zum MySQL-Lernen einer Datenbanksicherung

<<:  So lösen Sie das Problem, dass sich Ubuntu 18.04 wiederholt anmeldet/auf der Boot-Oberfläche hängen bleibt/die grafische Oberfläche nicht aufrufen kann

>>:  Vue implementiert eine Wettervorhersagefunktion

Artikel empfehlen

JSON (JavaScript Object Notation) in einem Artikel verstehen

Inhaltsverzeichnis JSON wird angezeigt JSON-Struk...

Detaillierte Analyse des HTTP-Statuscodes 502 des Dienstes nginx+php-fpm

Bei einem unserer Webprojekte ist aufgrund der Zu...

React implementiert doppelten Schieberegler zum Querschieben

In diesem Artikel wird der spezifische Code für R...

SVG+CSS3 zum Erzielen eines dynamischen Welleneffekts

Eine Vektorwelle <svg viewBox="0 0 560 20...

Zusammenfassung einiger effizienter magischer Operatoren in JS

JavaScript veröffentlicht mittlerweile jedes Jahr...

3 Möglichkeiten zum Hinzufügen von Links zu HTML-Auswahl-Tags

Der Erste : Code kopieren Der Code lautet wie folg...

So verwenden Sie die Shell, um Batchvorgänge auf mehreren Servern auszuführen

Inhaltsverzeichnis SSH-Protokoll SSH Verbindungsp...

Verstehen Sie die Implementierung des Nginx-Standortabgleichs in einem Artikel

Da das Team Front-End und Back-End trennt, überni...

Verwenden Sie das Firebug-Tool, um die Seite auf dem iPad zu debuggen

Wie debuggt man eine Seite auf dem iPad? Wenn Sie ...

JavaScript-Simulationsrechner

In diesem Artikel wird der spezifische Code des J...