Die Master-Slave-Synchronisierung, auch Master-Slave-Replikation genannt, ist eine von MySQL bereitgestellte Hochverfügbarkeitslösung, die die Master-Slave-Datenkonsistenz gewährleistet. In einer Produktionsumgebung gibt es viele unkontrollierbare Faktoren, wie beispielsweise den Ausfall von Datenbankdiensten. Um eine hohe Verfügbarkeit der Anwendung zu gewährleisten, muss auch die Datenbank hochverfügbar sein. Daher wird in Produktionsumgebungen die Master-Slave-Synchronisierung verwendet. Bei kleinen Anwendungsbereichen werden im Allgemeinen ein Master und ein Backup verwendet. Neben der Möglichkeit, bei einem Ausfall des Datenbankdienstes schnell zur Standby-Datenbank zu wechseln und so eine Nichtverfügbarkeit der Anwendung zu vermeiden, bietet die Verwendung der Master-Slave-Synchronisierung die folgenden Vorteile: Verbessern Sie die Lese-Parallelität der Datenbank. Die meisten Anwendungen erfordern mehr Lese- als Schreibvorgänge. Verwenden Sie eine Master-Slave-Synchronisierungslösung. Wenn der Nutzungsumfang zunimmt, können Sie die Slave-Datenbank erweitern, um die Lesefähigkeit zu verbessern. Durch Backup und Master-Slave-Synchronisierung kann eine vollständige Echtzeit-Backup-Datenbank erstellt werden. Schnelle Wiederherstellung: Wenn in der primären Datenbank ein Fehler auftritt (z. B. versehentliches Löschen einer Tabelle), können die Daten schnell über die Standby-Datenbank wiederhergestellt werden. Für umfangreiche Anwendungen mit geringer Toleranz gegenüber der Geschwindigkeit der Datenwiederherstellung kann eine Backup-Datenbank mit einem Daten-Snapshot konfiguriert werden, der eine halbe Stunde nach der Primärdatenbank erstellt wird. Wenn eine Tabelle versehentlich aus der Primärdatenbank gelöscht wird, kann sie mithilfe der Backup-Datenbank und des Binärprotokolls schnell wiederhergestellt werden, wobei die maximale Wartezeit eine halbe Stunde beträgt. Nachdem wir nun besprochen haben, was Master-Slave-Synchronisierung ist und welche Vorteile sie bietet, wollen wir nun verstehen, wie die Master-Slave-Synchronisierung erreicht wird. Implementierungsprinzip der Master-Slave-SynchronisationLassen Sie uns zunächst das Prinzip der Master-Slave-Synchronisierung verstehen. Im Folgenden wird anhand einer Update-Anweisung erläutert, wie die Master- und Slave-Datenbanken synchronisiert werden. Die obige Abbildung ist ein vollständiges Flussdiagramm einer Update-Anweisung, die auf Knoten A ausgeführt und dann mit Knoten B synchronisiert wird. Die einzelnen Schritte sind:
Das Funktionsprinzip der Master-Slave-Synchronisierung besteht eigentlich aus einer vollständigen Sicherung plus Wiederherstellung der Binärprotokollsicherung. Der Unterschied besteht darin, dass der Wiederherstellungsvorgang dieses Binärprotokolls grundsätzlich in Echtzeit erfolgt. Die Standby-Datenbank verwendet zwei Threads, um die Synchronisierung durchzuführen:
Aus dem obigen Prozess können wir erkennen, dass der Schlüssel zur Master-Slave-Synchronisation binlog ist Zwei gängige Aktiv/Standby-Umschaltvorgänge MS-StrukturIn der MS-Struktur gibt es zwei Knoten, von denen einer als primäre Datenbank und der andere als Sicherungsdatenbank dient. Die beiden Knoten dürfen ihre Rollen nicht tauschen. Im Zustand 1 greifen die Lese- und Schreibvorgänge des Clients direkt auf Knoten A zu, und Knoten B ist die Sicherungsdatenbank von A. Er synchronisiert lediglich alle Aktualisierungen von A und führt sie lokal aus. Dadurch bleiben die Daten auf den Knoten B und A gleich. Wenn ein Umschalten erforderlich ist, wechseln Sie in den Zustand 2. Zu diesem Zeitpunkt liest und schreibt der Client auf Knoten B und Knoten A ist die Sicherungsdatenbank von B. Doppel-M-StrukturDuale M-Struktur, zwei Knoten, einer als primäre Datenbank und einer als Sicherungsdatenbank, wobei die beiden Knoten ihre Rollen tauschen können. Im Vergleich mit dem vorherigen MS-Strukturdiagramm können wir feststellen, dass der einzige Unterschied zwischen der dualen M-Struktur und der MS-Struktur darin besteht, dass es eine weitere Linie gibt, d. h. die Knoten A und B stehen immer in einer Master-Slave-Beziehung zueinander. Somit ist es nicht notwendig, die Master-Slave-Beziehung beim Umschalten zu verändern. Das zirkuläre Kopierproblem der Doppel-M-StrukturIm tatsächlichen Produktionseinsatz wird in den meisten Fällen die Doppel-M-Struktur verwendet. Allerdings gibt es bei der Doppel-M-Struktur noch ein Problem, das gelöst werden muss. Wenn die Geschäftslogik auf Knoten A aktualisiert wird, wird ein Binärprotokoll generiert und mit Knoten B synchronisiert. Nachdem Knoten B synchronisiert wurde, wird auch ein Binärprotokoll generiert. (log_slave_updates ist auf „on“ gesetzt, was bedeutet, dass die Standby-Datenbank auch Binärprotokolle generiert). Wenn Knoten A auch die Sicherungsdatenbank von Knoten B ist, wird das Binärprotokoll von Knoten B auch an Knoten A gesendet, was zu einer zirkulären Replikation führt. Lösung:
Der Prozess nach der Lösung:
Oben sind die Details beschrieben, wie MySQL die Master-Slave-Synchronisierung erreicht. Weitere Informationen zur MySQL-Master-Slave-Synchronisierung finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Anfänger lernen einige HTML-Tags (2)
Inhaltsverzeichnis 1. Einleitung 2. Eingabemodus ...
MySQL wird in eine Installationsversion und eine ...
Wenn Sie Docker verwenden, suchen Sie in Docker n...
Inhaltsverzeichnis 1. Eclipse konfiguriert Tomcat...
Inhaltsverzeichnis chmod Beispiel Besonderes Auge...
Inhaltsverzeichnis 1. Befehl 2. docker-compose.ym...
Ich habe heute einen neuen Trick gelernt. Ich kann...
Nginx wurde in der Programmiersprache C entwickel...
Wie lassen sich Kompatibilitätsprobleme mit virtu...
Inhaltsverzeichnis Symboldatentyp Der Grund, waru...
Verwendung: Datum [Optionen]... [+Format] oder: D...
Eine Liste ist definiert als eine Text- oder Diag...
„Der große Fluss fließt nach Osten, die Wellen sp...
1. Native Netzwerkanforderung 1. XMLHttpRequest (...
Ich habe vor Kurzem den günstigsten Tencent-Cloud...