Das Implementierungsprinzip der MySQL-Master-Slave-Synchronisation

Das Implementierungsprinzip der MySQL-Master-Slave-Synchronisation

1. Was ist MySQL Master-Slave-Synchronisierung?

Wenn sich die Daten in der Masterdatenbank ändern, werden die Änderungen in Echtzeit mit der Slavedatenbank synchronisiert.

2. Was sind die Vorteile der Master-Slave-Synchronisierung?

  • Skalieren Sie die Datenbankladekapazität horizontal.
  • Fehlertoleranz und hohe Verfügbarkeit. Failover/Hochverfügbarkeit
  • Datensicherung.

3. Was ist das Prinzip der Master-Slave-Synchronisation?

Lassen Sie uns zunächst die Master-Slave-Architektur verstehen.

Wie unten dargestellt:

Ob Löschen, Aktualisieren, Einfügen oder Erstellen von Funktionen und gespeicherten Prozeduren, alle Vorgänge werden auf dem Master ausgeführt. Wenn der Master über Operationen verfügt, empfängt der Slave diese Operationen schnell und synchronisiert sie.

Aber wie wird dieser Mechanismus umgesetzt?

Auf dem Master-Rechner werden Master-Slave-Synchronisierungsereignisse in eine spezielle Protokolldatei (Binärprotokoll) geschrieben. Auf dem Slave-Rechner liest der Slave die Master-Slave-Synchronisierungsereignisse und nimmt auf Grundlage der Änderungen in den gelesenen Ereignissen entsprechende Änderungen an der Slave-Bibliothek vor.

Auf diese Weise wird eine Master-Slave-Synchronisation erreicht!

Schauen wir uns das unten genauer an.

3.1 Was sind die Master-Slave-Synchronisierungsereignisse?

Es steht oben:

Auf dem Master-Rechner werden Master-Slave-Synchronisierungsereignisse in eine spezielle Protokolldatei (Binärprotokoll) geschrieben.

Es gibt drei Formen von Master-Slave-Synchronisierungsereignissen: Anweisung, Zeile und gemischt.

  1. Anweisung: Die SQL-Anweisungen für Datenbankoperationen werden in das Binärprotokoll geschrieben.
  2. Zeile: Jede Datenänderung wird ins Binärprotokoll geschrieben.
  3. gemischt: eine Mischung aus Anweisung und Zeile. Mysql entscheidet, wann das Anweisungsformat und wann das Zeilenformat Binlog geschrieben werden soll.

3.2 Operationen auf der Master-Maschine

Wenn sich die Daten auf dem Master ändern, werden die Ereignisänderungen (Einfügen, Aktualisieren, Löschen) nacheinander in das Binärprotokoll geschrieben.

Binlog-Dump-Thread

Wenn der Slave eine Verbindung zum Master herstellt, startet die Master-Maschine den Binlog-Dump-Thread für den Slave. Wenn sich das Binlog des Masters ändert, benachrichtigt der Binlog-Dump-Thread den Slave und sendet den entsprechenden Binlog-Inhalt an den Slave.

3.3 Operationen auf der Slave-Maschine

Wenn die Master-Slave-Synchronisierung aktiviert ist, werden auf dem Slave zwei Threads erstellt.

  • E/A-Thread. Dieser Thread ist mit der Mastermaschine verbunden, und der Binlog-Dump-Thread auf der Mastermaschine sendet den Inhalt des Binlogs an den I/O-Thread. Nach dem Empfang des Binärprotokollinhalts schreibt der E/A-Thread den Inhalt in das lokale Relay-Protokoll.
  • SQL-Thread. Dieser Thread liest das vom E/A-Thread geschriebene Relay-Protokoll. Und führen Sie entsprechend dem Inhalt des Relay-Protokolls entsprechende Vorgänge an der Slave-Datenbank aus.

3.4 Wie kann ich die obigen Threads auf dem Master und Slave anzeigen?

Sie können es mit dem Befehl SHOW PROCESSLIST anzeigen.

Zeigen Sie wie in der Abbildung gezeigt den Binlog-Dump-Thread auf dem Mastercomputer an.

Überprüfen Sie wie in der Abbildung gezeigt die E/A- und SQL-Threads auf dem Slave-Computer.

4. Nachdem ich so viel gesagt habe, möchte ich es mit einem Bild zusammenfassen

5. Über den eigentlichen Kampf

Informationen zum tatsächlichen Kampf finden Sie in meinem anderen Artikel: Tatsächlicher Kampf der MySQL-Master-Slave-Synchronisierung

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Prinzip und Anwendung der MySQL-Master-Slave-Synchronisation
  • Master-Slave-Synchronisationskonfiguration der Mysql-Datenbank
  • Dieser Artikel zeigt Ihnen das Prinzip der MySQL Master-Slave-Synchronisation
  • MySQL Master-Slave-Synchronisationsmechanismus und Tracking-Prozess für Synchronisationsverzögerungsprobleme
  • Detaillierte Erläuterung der Konfigurationspraxis für die MySQL-Master-Slave-Synchronisierung
  • So richten Sie die Master-Slave-Synchronisierung in der MySQL-Datenbank ein

<<:  Detaillierte Erklärung und Zusammenfassung der Verwendung des Crontab-Befehls für geplante Linux-Aufgaben

>>:  Vant+postcss-pxtorem implementiert Browser-Anpassungsfunktion

Artikel empfehlen

So erstellen Sie eine Tabelle in MySQL und fügen Feldkommentare hinzu

Code und Beispiele direkt posten #Schreiben Sie K...

CSS-Animation kombiniert mit SVG zur Erzeugung eines Energieflusseffekts

Der endgültige Effekt ist wie folgt: Die Animatio...

Detaillierte Erklärung der mysql.user-Benutzertabelle in Mysql

MySQL ist eine von mehreren Benutzern verwaltete ...

Mehrere gängige Methoden für CSS-Layouts mit gleicher Höhe

Gleichhohes Layout Bezieht sich auf das Layout vo...

Diagramm der Installationszusammenfassung für MySQL 8.0.11

Installationsumgebung: CAT /etc/os-release Zeigt ...

Beinhaltet der %-Wert im neu erstellten MySQL-Benutzer localhost?

Normale Erklärung % bedeutet, dass jeder Client e...

CSS-Randüberlappungen und wie man sie verhindert

Die vertikal benachbarten Kanten zweier oder mehr...

Hinweise zur Verwendung von Textarea

Warum speziell Textbereich erwähnen? Denn der Text...

echars 3D-Kartenlösung für benutzerdefinierte Farben von Regionen

Inhaltsverzeichnis Frage verlängern Lösung des Pr...

Lösung zum Vergessen des Passworts des Pagodenpanels in Linux 3.X/4.x/5.x

Geben Sie ssh ein und geben Sie den folgenden Bef...