Heim  >  Artikel  >  Datenbank  >  Was ist MySQL-Master-Slave?

Was ist MySQL-Master-Slave?

WBOY
WBOYOriginal
2022-02-24 10:34:193303Durchsuche

In MySQL bezieht sich Master-Slave auf die Einrichtung von zwei identischen Datenbanken, von denen eine als Hauptdatenbank und die andere als sekundäre Datenbank verwendet wird. Dies kann Datenverluste aufgrund von Ausfallzeiten des Datenbankservers verhindern und ein Fehlermanagement ermöglichen , Lese-/Schreibtrennung und Sicherungsfunktionen.

Was ist MySQL-Master-Slave?

Die Betriebsumgebung dieses Tutorials: Windows10-System, MySQL8.0.22-Version, Dell G3-Computer.

Was ist MySQL-Master-Slave?

Einführung in Master-Slave

Der sogenannte MySQL-Master-Slave besteht im Allgemeinen darin, zwei identische Datenbanken einzurichten, von denen eine die Hauptdatenbank und die andere die sekundäre Datenbank ist In Unternehmen muss der Datenbankserver, der wichtigere Daten speichert, mit einer Master-Slave-Konfiguration konfiguriert werden. Dies kann Datenverluste aufgrund von Ausfallzeiten des Datenbankservers verhindern und auch die Servicequalität (Server-Antwortgeschwindigkeit) sicherstellen, wenn es zu viele gibt Unternehmen, zu viele Daten und zu viele Besucher. Es kann auch Funktionen wie Failover, Lese-/Schreibtrennung und Backup bereitstellen.

Master-Slave-Form

Ein Master und ein Slave

Master-Master-Replikation: Wird als Backup verwendet. Wenn der Master-Server ausfällt, übernimmt automatisch der andere Master-Server.

Ein Master und mehrere Slaves: Wird verwendet, um eine Trennung von Lese- und Schreibvorgängen zu erreichen. Der Master-Server wird zum Implementieren von Schreibvorgängen und der Slave-Server zum Implementieren von Lesevorgängen verwendet Operationen.

Mehrere Master und ein Slave: Wird verwendet, um eine Trennung von Lese- und Schreibvorgängen zu erreichen. Der Master-Server wird zum Implementieren von Schreibvorgängen und der Slave-Server zum Implementieren von Lesevorgängen verwendet Operationen.

Traditionelle Master-Slave-Replikation

Traditionelle Master-Slave-Replikation ist hauptsächlich eine Replikation, die auf dem Speicherort binärer Protokolldateien basiert. Daher muss der Master mit der binären Protokollierung beginnen und eine eindeutige Server-ID einrichten, und jeder Server in der Replikationsgruppe muss dies tun mit einer eindeutigen Server-ID konfiguriert. Wenn Sie server-id weglassen (oder explizit auf den Standardwert 0 setzen), lehnt der Master alle Verbindungen vom Slave ab.

gtid Master-Slave

Eine der neuen Funktionen in MySQL 5.6, der Global Transaction Identifier (GTID), ist eine eindeutige Kennung, die erstellt und jeder auf dem Quellserver (Masterserver) ausgeführten Transaktion zugeordnet wird. Dieser Bezeichner ist nicht nur eindeutig, sondern auch auf allen Servern in einem bestimmten Replikationssetup eindeutig. Es besteht eine Eins-zu-Eins-Zuordnung zwischen allen Transaktionen und allen GTIDs. Sie setzt sich aus der Server-ID und der Transaktions-ID zusammen. Diese globale Transaktions-ID ist nicht nur auf dem ursprünglichen Server eindeutig, sondern auch auf allen MySQL-Servern, die eine Master-Slave-Beziehung haben. Gerade aufgrund dieser Funktion wird die Master-Slave-Replikation von MySQL einfacher und die Datenbankkonsistenz zuverlässiger. Eine GTID wird nur einmal auf einem Server ausgeführt, um Datenverwechslungen oder Master-Slave-Inkonsistenzen durch wiederholte Ausführung zu vermeiden.

Prinzip der Master-Slave-Replikation

Workflow der Master-Slave-Replikation: Die Master-Bibliothek zeichnet alle Benutzerschreibvorgänge (außer Hinzufügungen, Löschungen, Änderungen und Prüfungen) im Binlog-Protokoll auf und generiert einen Protokoll-Dump-Thread und Die Slave-Bibliothek generiert E/A- und SQL-Threads, der E/A-Thread der Slave-Bibliothek sendet eine Anfrage in Form eines E/A-Streams an den Log-Dump-Thread der Hauptbibliothek Sendet das Binlog-Protokoll nach Erhalt der Anforderung vom E/A-Thread der Slave-Bibliothek. Der E/A-Thread der Slave-Bibliothek empfängt das Binlog-Protokoll und schreibt es in die Relay-Log-Datei (Relay-Log). Anschließend analysiert der SQL-Thread der Slave-Bibliothek das Protokoll in der Relay-Protokolldatei und führt es schließlich aus. Die generierte SQL-Skriptdatei wird verwendet, um konsistente Master-Slave-Operationen und eine endgültige Datenkonsistenz zu erreichen.

Empfohlenes Lernen: MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist MySQL-Master-Slave?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn