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 ändern Sie das MySQL-Passwort unter Centos

1. MySQL-Anmeldeeinstellungen ändern: # vim /etc/...

Einfaches Anwendungsbeispiel für eine rekursive Vue-Komponente

Vorwort Ich glaube, dass viele Studenten bereits ...

Kreisförmiger Fortschrittsbalken mit CSS implementiert

Ergebnisse erzielen Implementierungscode html <...

Prinzipien der MySQL-Datentypoptimierung

MySQL unterstützt viele Datentypen und die Auswah...

Analyse des Problems des Datenverlusts durch erzwungene Aktualisierung von Vuex

vuex-persistenter Zustand Kernprinzip: Alle Vuex-...

Einführung in die Nginx-Protokollverwaltung

Nginx-Protokollbeschreibung Über Zugriffsprotokol...

Implementierung der Docker-Bereitstellung von Webprojekten

Im vorherigen Artikel wurde der Docker-Dienst ins...

Vor- und Nachteile gängiger MySQL-Speicher-Engines

Inhaltsverzeichnis Alle Speicher-Engines anzeigen...

Lassen Sie uns über Destrukturierung in JS ES6 sprechen

Überblick es6 fügt eine neue Möglichkeit hinzu, b...

Analyse des SELECT-Abfrageausdrucks in der MySQL-Datenbank

Ein großer Teil der Datenverwaltung besteht aus S...

Lösung für das Problem, dass HTML2-Canvas-SVG nicht erkannt wird

Es gibt eine neue Funktion, die das Erfassen eine...