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.
Die Betriebsumgebung dieses Tutorials: Windows10-System, MySQL8.0.22-Version, Dell G3-Computer.
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!