In diesem Artikel wird hauptsächlich das Implementierungsprinzip der MySQL Master-Slave-Synchronisation vorgestellt. Der Herausgeber findet es recht gut, daher werde ich es jetzt mit Ihnen teilen und als Referenz geben. Folgen wir dem Editor und werfen wir einen Blick darauf
1. Was ist MySQL-Master-Slave-Synchronisation?
Wenn sich die Daten in der Master-Datenbank ändern, werden die Änderungen in Echtzeit mit der Slave-Datenbank synchronisiert.
2. Welche Vorteile bietet die Master-Slave-Synchronisation?
Erweitern Sie die Ladekapazität der Datenbank horizontal.
Fehlertoleranz, 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 gezeigt:
Ob es sich um Löschen, Aktualisieren, Einfügen oder Erstellen von Funktionen handelt, Gespeicherte Prozedur , alle Vorgänge erfolgen auf dem Master. Wenn der Master Vorgänge ausführt, empfängt der Slave diese Vorgänge schnell und führt eine Synchronisierung durch.
Aber wie wird dieser Mechanismus umgesetzt?
Auf dem Master-Rechner werden die Master-Slave-Synchronisationsereignisse in eine spezielle Protokolldatei (Binärprotokoll) geschrieben; auf dem Slave-Rechner liest der Slave die Master-Slave-Synchronisationsereignisse und liest Wenn sich das Ereignis ändert, nehmen Sie entsprechende Änderungen in der Slave-Bibliothek vor.
Auf diese Weise wird eine Master-Slave-Synchronisation erreicht!
Lassen Sie uns mehr darüber im Detail erfahren.
3.1 Was sind die Master-Slave-Synchronisationsereignisse
Wie oben erwähnt:
Auf der Master-Maschine Master-Slave-Synchronisation Ereignisse werden in eine spezielle Protokolldatei (Binärprotokoll) geschrieben.
Es gibt drei Formen von Master-Slave-Synchronisationsereignissen: Anweisung, Zeile und gemischt.
Anweisung: schreibt die SQL-Anweisungen für Datenbankoperationen in das Binlog.
Zeile: Jede Datenänderung wird in das Binlog geschrieben.
gemischt: eine Mischung aus Statement und Row. MySQL entscheidet, wann das Anweisungsformat geschrieben wird und wann Binlog im Zeilenformat geschrieben wird.
3.2 Vorgang auf dem Master-Computer
Wenn sich die Daten auf dem Master ändern, ändert sich das Ereignis (Einfügen, Aktualisieren, Löschen) entsprechend Schreiben an binlog nacheinander.
Binlog-Dump-Thread
Wenn der Slave mit dem Master verbunden ist, öffnet der Master-Computer 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 Betrieb auf dem Slave-Computer
Wenn die Master-Slave-Synchronisierung aktiviert ist, werden 2 Threads auf dem Slave erstellt.
E/A-Thread. Dieser Thread ist mit dem Master-Computer verbunden und der Binlog-Dump-Thread auf dem Master-Computer sendet den Inhalt des Binlogs an den E/A-Thread. Nach dem Empfang des Binlog-Inhalts 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 entsprechende Vorgänge in der Slave-Datenbank entsprechend dem Inhalt des Relay-Protokolls durch.
3.4 Wie kann ich die obigen Threads auf Master und Slave anzeigen?
Verwenden Sie zum Anzeigen den Befehl SHOW PROCESSLIST.
Wie in der Abbildung gezeigt, sehen Sie sich den Binlog-Dump-Thread auf dem Master-Computer 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, kann ich es in einem Bild zusammenfassen
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Implementierung des MySQL-Master-Slave-Synchronisationsprinzips (Bilder und Texte). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!