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

JavaScript-Entwurfsmuster, Befehlsmuster

Das Befehlsmuster ist ein Verhaltensentwurfsmuste...

Lösung für mobile Browser, die die Position nicht unterstützen: Fix

Die konkrete Methode ist wie folgt: CSS Code Code...

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

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

Fallstudie zur dynamischen Datenbindung von this.$set in Vue

Ich finde, dass die Erklärung von this.$set im In...

js, um einen einfachen Lupeneffekt zu erzielen

In diesem Artikel wird der spezifische Code von j...

So zeigen Sie den Kennwortablauf unter Linux an und konfigurieren ihn

Mit den richtigen Einstellungen können Sie Linux-...

MySQLs konzeptionelles Verständnis verschiedener Sperren

Optimistisches Sperren Optimistisches Sperren wir...

Get/Delete-Methode zum Übergeben von Array-Parametern in Vue

Wenn Front-End und Back-End interagieren, müssen ...

Detaillierte Erklärung zur Verwendung von Join zur Optimierung von SQL in MySQL

0. Bereiten Sie relevante Tabellen für die folgen...

Wie können die Transaktionseigenschaften von MySQL InnoDB sichergestellt werden?

Vorwort Wenn Sie jemand fragt: „Was sind die Merk...

Die vernachlässigten Spezialeffekte von META-Tags (Seitenübergangseffekte)

Durch die Verwendung von JS im Webdesign können vi...

Beispielcode zur Implementierung des Regentropfen-Animationseffekts mit CSS

Glasfenster Was wir heute erreichen werden, ist d...