Detaillierte Erklärung des MySQL-Sicherungsprozesses mit Xtrabackup

Detaillierte Erklärung des MySQL-Sicherungsprozesses mit Xtrabackup

01 Hintergrund

Xtrabackup ist ein Open-Source-MySQL-Hot-Backup-Tool, das von Percona entwickelt wurde. Ich habe es in meiner früheren Arbeit häufig verwendet, aber erst in der Nutzungsphase. Ich habe nicht viel über die Details dieses Tools recherchiert. Heute habe ich mir den Prozess genau angesehen und etwas daraus gelernt. Ich habe es aufgeschrieben und aufgezeichnet. Wenn etwas falsch ist, korrigieren Sie mich bitte.

Das Tool Xtrabackup kann InnoDB-, XtraDB- und MyISAM-Tabellen sichern. Es unterstützt alle Versionen von Percona Server und ist mit MySQL und MariaDB kompatibel. Es unterstützt auch einige erweiterte Funktionen wie Streaming-Backup, Komprimierung, Verschlüsselung und inkrementelles Backup.

Die Vorteile sind wie folgt:

1. Es ist nicht erforderlich, die Datenbank anzuhalten, um ein InnoDB-Hot-Backup durchzuführen. Es sollte das bevorzugte Tool sein, wenn Daten mit mehr als 50 G gesichert werden.

2. Unterstützt inkrementelle Sicherungen von MySQL und überträgt diese per Streaming auf andere Server.

3. Durch das Sichern von MySQL wird die Serverlast nicht erhöht.

02 Einleitung

In diesem Tool gibt es zwei Hauptanwendungen, nämlich innobackupex und xtrabackup. Ersteres ist ein Perl-Skript und letzteres ist ein C++-Varianten-Binärprogramm. Es ist zu beachten, dass letzteres keine anderen Tabellen als die Innodb-Speicher-Engine sichern kann. Innobackup ist ein Wrapper für xtrabackup und kann Nicht-Innodb-Tabellen sichern.

Wie oben erwähnt, weiß das vielleicht jeder. Hier ist zu beachten, dass innobackupex im Allgemeinen zum Sichern von Systembibliotheken verwendet wird, da einige Speicher-Engines von Tabellen in Systemdatenbanken wie MySQL auf MyISAM basieren.

03 Arbeitsablauf

Im Folgenden wird der Arbeitsablauf von Innobackupex und Xtrabackup beschrieben. Es kann einige Überschneidungen geben, aber die beiden arbeiten zusammen, um die Sicherungsaufgabe abzuschließen.

Der Hauptarbeitsablauf ist wie folgt:

1. Nachdem innobackupex gestartet wurde, wird zuerst der xtrabackup-Prozess erstellt und gestartet und dann gewartet, bis xtrabackup die Sicherung der innodb-bezogenen Dateien abgeschlossen hat.

2. Wenn xtrabackup InnoDB-bezogene Dateien sichert, werden die folgenden zwei Threads gestartet: Einer ist der IBD-Kopierthread, der für das Kopieren der IBD-Datei des Tablespace verantwortlich ist, und der andere ist der Redo-Log-Kopierthread, der für das Kopieren der Redo-Log-Informationen verantwortlich ist. Der Redo-Log-Thread startet vor dem IBD-Thread. Der Redo-Log-Thread kopiert das Redo-Log vom letzten Prüfpunkt (Prüfpunkte wurden in früheren Artikeln besprochen). Nachdem das Kopieren abgeschlossen ist, wird der IBD-Thread gestartet. Es ist zu beachten, dass sich der innobackupex-Prozess während dieses Vorgangs in einem Wartezustand befindet und darauf wartet, vom xtrabackup-Prozess geweckt zu werden.

3. Nachdem xtrabackup das Kopieren von ibd abgeschlossen hat (der Redo-Log-Thread arbeitet möglicherweise noch), benachrichtigt es den innobackupex-Prozess und wechselt in den Wartezustand.

4. Nachdem innobackupex die Benachrichtigung erhalten hat, führt es die Sicherungssperre und den Kanalkonsistenzpunkt aus und beginnt dann mit dem Kopieren von Nicht-InnoDB-Dateien.

5. Nachdem die Nicht-InnoDB-Dateien kopiert wurden, beginnt innobackupex, den Binlog-Speicherort abzurufen.

6. Erstellen Sie die Datei xtrabackup_binlog_info und schreiben Sie die Binlog-Punktinformationen in die Datei.

7. Anschließend initiiert innobackupex eine Benachrichtigung an den xtrabackup-Prozess und wechselt in den Wartezustand.

8. Nach Erhalt der Benachrichtigung stoppt der xtrabackup-Prozess den Thread zum Kopieren des Redo-Logs, informiert darüber, dass das Kopieren des Redo-Logs abgeschlossen ist, und benachrichtigt dann innodbbackupex, mit der Freigabe der Sperre zu beginnen.

9. Als Nächstes stehen einige Abschlussaufgaben an, z. B. das Freigeben von Ressourcen, das Sichern von Metadateninformationen, das Drucken des Sicherungsverzeichnisses, das Sichern der Standortinformationen von Binlog und das Schreiben von xtrabackup_info-Dateiinformationen.

10. Der innobackupex-Prozess wartet, bis der xtrabackup-Prozess abgeschlossen ist, und wird dann beendet.

04 Einige Fragen

1. Warum müssen wir Redo-Protokolle kopieren?

Dies liegt daran, dass die IBD-Datei während des Sicherungsvorgangs geändert werden kann, sodass die gesicherte Datei möglicherweise fehlerhafte Daten enthält. Bei der Wiederherstellung müssen die Daten über das Redo-Protokoll wiederhergestellt werden, d. h. die festgeschriebenen Transaktionen müssen angewendet und die nicht festgeschriebenen Transaktionen zurückgesetzt werden.

2. Wie interagieren innobackupex und xtrabackup?

Tatsächlich besteht das Wesentliche darin, zwei bestimmte Dateien zu löschen und zu erstellen. Diese beiden Prozesse überwachen, ob das angegebene Verzeichnis bestimmte Dateien enthält. Wenn dies der Fall ist, werden sie ausgeführt. Wenn nicht, hören sie auf zu arbeiten und wechseln in einen Wartezustand.

05 Sichern Sie Ihre Dateien

Im Allgemeinen werden nach Abschluss der Sicherung 7 wichtige Dateien im Sicherungsverzeichnis generiert, darunter:

  • backup-my.cnf: Diese Datei enthält die für die Sicherung erforderlichen Optionen in my.cnf. Beim Wiederherstellen wird auf diese Datei zurückgegriffen.
  • xtrabackup_checkpoints: zeichnet den Sicherungstyp und die Sicherungsstatusinformationen auf. Die inkrementelle Sicherung hängt von diesen Informationen ab.
  • xtrabackup_binlog_info: Diese Datei zeichnet während der Sicherung die Binärdateiinformationen und den Offset-Speicherort auf.
  • xtrabackup_binlog_pos_innodb: Diese Datei zeichnet die Binärdateien und Standortinformationen der InnoDB-Tabelle auf. Diese Datei wird erstellt, wenn --apply-log ausgeführt wird.
  • xtrabackup_binary: Diese Datei zeichnet die vom Sicherungsvorgang verwendete Binärdatei xtrabackup auf.
  • xtrabackup_logfile: Diese Datei zeichnet die für den Vorgang „Apply Log“ erforderlichen Daten auf. Wenn das Anwenden des Protokolls lange dauert, wird diese Datei sehr groß.
  • xtrabackup_slave_info: Diese Datei wird häufig verwendet. Sie zeichnet die Informationen auf, die die Change-Master-Anweisung beim Herstellen einer Master-Slave-Beziehung benötigt.

Oben finden Sie den detaillierten Inhalt der ausführlichen Erklärung des MySQL-Sicherungsprozesses mit Xtrabackup. Weitere Informationen zur MySQL-Sicherung mit Xtrabackup finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Tutorial zur Installation und Verwendung von Percona XtraBackup zum Sichern und Wiederherstellen von MySQL
  • Sichern und Wiederherstellen mit dem Tool Xtrabackup (ein unverzichtbares Tool für MySQL DBA)
  • MySQL Xtrabackup - gemeinsame Nutzung der Backup- und Wiederherstellungsimplementierung
  • xtrabackup MySQL-Datenbank sichern und wiederherstellen
  • MySQL verwendet xtrabackup für Sicherungs- und Wiederherstellungsvorgänge
  • Verwenden von xtrabackup zum Implementieren einer MySQL-Sicherung
  • Tutorial zum Schreiben von Skripten zur Verwendung von Xtrabackup zum Sichern von MySQL-Daten
  • Tutorial zur Verwendung von innobackupex und xtrabackup zum Sichern und Wiederherstellen großer Datenmengen in MySQL
  • So verwenden Sie Xtrabackup zum Sichern und Wiederherstellen von MySQL

<<:  Webdesign-Tutorial (2): Über Nachahmung und Plagiat

>>:  Detaillierte Erklärung der gemischten Vererbung in Vue

Artikel empfehlen

Zusammenfassung der MySQL-Abfragesyntax

Vorwort: In diesem Artikel wird hauptsächlich die...

Wie werden Vue-Komponenten analysiert und gerendert?

Vorwort In diesem Artikel wird erklärt, wie Vue-K...

Über das Vue Virtual Dom-Problem

Inhaltsverzeichnis 1. Was ist virtueller Dom? 2. ...

Ausnahmefehler beim Packen von Webpack-Dateien

Vor dem Verpacken im Webpack müssen wir sicherste...

Ausführliches Tutorial zur Installation von MySQL 8.0.19 (Windows 64 Bit)

Inhaltsverzeichnis MySQL initialisieren MySQL-Die...

Anwendung zur Verarbeitung von HTML-Tag-Überläufen

Verwenden Sie CSS, um Bildlaufleisten zu ändern 1...

Detaillierte Erklärung zur sauberen Deinstallation von Docker

Zunächst die Informationen zur Serverumgebung: Gr...

Detaillierte Erklärung zur Verwendung der Vue-Komponente zur Kennzeichensuche

Eine einfache Nummernschild-Eingabekomponente (vu...

Installations- und Konfigurationstutorial von MongoDB unter Linux

MongoDB -Installation Wählen Sie die Installation...

MySQL-Transaktionsdetails

Inhaltsverzeichnis Einführung Vier Merkmale von T...

VMWare Linux MySQL 5.7.13 Installations- und Konfigurationstutorial

In diesem Artikel finden Sie das Tutorial zur Ins...