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

Verwenden Sie die CSS-Eigenschaft border-radius, um den Bogen festzulegen

Phänomen: Wandeln Sie das Div in einen Kreis, ein...

So erzielen Sie mit CSS einen Daten-Hotspot-Effekt

Die Wirkung ist wie folgt: analysieren 1. Hier se...

Analyse von Mysql-Datenmigrationsmethoden und -Tools

In diesem Artikel wird hauptsächlich die Analyse ...

Spezifische Verwendung des Node.js-Paketmanagers npm

Inhaltsverzeichnis Zweck npm init und package.jso...

Tiefgreifendes Verständnis des Slot-Scopes in Vue (für Anfänger geeignet)

Es gibt bereits viele Artikel über Slot-Scope auf...

Vue-Router-Verlaufsmodus, serverseitiger Konfigurationsprozess-Datensatz

Geschichtsroute Der Verlaufsmodus bezieht sich au...

Index in MySQL

Vorwort Kommen wir gleich zur Sache. Die folgende...

Zusammenfassung von 10 erweiterten Tipps für Vue Router

Vorwort Vue Router ist der offizielle Routing-Man...

Vue erhält Token zur Implementierung des Beispielcodes für die Token-Anmeldung

Die Idee hinter der Verwendung eines Tokens zur L...

Viewport-Parameter für mobile Browser (Web-Frontend-Design)

Mobile Browser platzieren Webseiten in einem virtu...

Einführung in häufig verwendete MySQL-Befehle in der Linux-Umgebung

Geben Sie den MySQL-Befehl ein: mysql -u+(Benutze...

Detaillierte Erläuterung der Wissenspunkte zum MySQL Strict Mode

I. Erläuterung des strikten Modus Gemäß den Einsc...

Sublime Text - Empfohlene Methode zum Festlegen von Browser-Tastenkombinationen

Codeeffekte werden häufig in unterschiedlichen Br...