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

Detaillierte Schritte zur Implementierung der Excel-Importfunktion in Vue

1. Front-End-geführte Implementierungsschritte De...

JavaScript imitiert den Jingdong-Lupeneffekt

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

Docker verwendet den Prune-Befehl, um das Nicht-Image zu bereinigen

Inhaltsverzeichnis Die Entstehung und Verwirrung ...

Detaillierte Analyse der HTML-Semantik und der zugehörigen Front-End-Frameworks

Über Semantik Die Semantik ist die Lehre von der ...

Linux-Betrieb und -Wartung – Tutorial zur grundlegenden Datenträgerverwaltung

1. Festplattenpartition: 2. fdisk-Partition Wenn ...

Zusammenfassung der MySQL-Datums- und Zeitfunktionen (MySQL 5.X)

1. MySQL erhält die aktuelle Datums- und Uhrzeitf...

Detaillierte Erklärung des Unterschieds zwischen CSS-Link und @import

Wie fügt man CSS in HTML ein? Es gibt drei Möglic...