Detaillierte Erläuterung der MySQL Master-Slave-Replikation und der Lese-/Schreibtrennung

Detaillierte Erläuterung der MySQL Master-Slave-Replikation und der Lese-/Schreibtrennung

Artikel-Mindmap

Bildbeschreibung hier einfügen

Warum Master-Slave-Replikation und Lese-/Schreibtrennung verwenden?

Master-Slave-Replikation und Lese-/Schreibtrennung werden im Allgemeinen zusammen verwendet. Der Zweck ist einfach: Er besteht darin, die gleichzeitige Leistung der Datenbank zu verbessern.
Sie können sich vorstellen, dass die Leistung definitiv nicht hoch sein wird, wenn es sich um eine einzelne Maschine handelt und sowohl das Lesen als auch das Schreiben auf einem MySQL erfolgt.
Wenn es drei MySQL-Server gibt, von denen ein Master nur für Schreibvorgänge und zwei Slaves nur für Lesevorgänge zuständig sind, würde sich die Leistung dann nicht erheblich verbessern?
Daher sind Master-Slave-Replikation und Lese-/Schreibtrennung darauf ausgelegt, der Datenbank eine höhere Parallelität zu ermöglichen.
Wenn MySQL mit zunehmendem Geschäftsvolumen auf einer einzelnen Maschine bereitgestellt wird, ist die E/A-Frequenz zu hoch.
Der Einsatz von Master-Slave-Replikation und Lese-/Schreibtrennung kann die Verfügbarkeit der Datenbank verbessern.

Das Prinzip der Master-Slave-Replikation

①Wenn der Masterknoten Einfüge-, Aktualisierungs- oder Löschvorgänge ausführt, werden diese der Reihe nach in das Binärprotokoll geschrieben.
②Die Salve-Slave-Datenbank stellt eine Verbindung zur Master-Hauptdatenbank her, und die Anzahl der vom Master erstellten Binlog-Dump-Threads entspricht der Anzahl der Slaves.
③Wenn sich das Binlog des Masterknotens ändert, benachrichtigt der Binlog-Dump-Thread alle Salve-Knoten.
Und pushen Sie den entsprechenden Binlog-Inhalt zum Slave-Knoten.
④Nach dem Empfang des Binlog-Inhalts schreibt der E/A-Thread den Inhalt in das lokale Relay-Protokoll.
⑤Der SQL-Thread liest das vom E/A-Thread geschriebene Relay-Protokoll und führt basierend auf dem Inhalt des Relay-Protokolls entsprechende Vorgänge an der Slave-Datenbank aus.

Bildbeschreibung hier einfügen

So implementieren Sie die Master-Slave-Replikation

** Umgebungsanzeige, ich verwende zur Demonstration zwei virtuelle Maschinen, IP ist Master (135) und 136 (Slave)

Zur besseren Übersicht zeigt die folgende Abbildung die Auswirkungen der drei Maschinen (Datenänderungen: z. B. Einfügen, Aktualisieren, Löschen …).

Master-Konfiguration

**Verwenden Sie die Befehlszeile, um MySQL einzugeben:

> mysql -uroot -p //Passwort eingeben> //192.168.190.136 ist die IP-Adresse des Slave-Rechners
> GRANT REPLICATION SLAVE ON *.* an „root“@„192.168.190.136“, identifiziert durch „rootroot“; 
//Aktualisieren Sie die Systemberechtigungstabelle. Wenn nicht, starten Sie das System neu, damit die Berechtigung wirksam wird. 
> Berechtigungen leeren;

Der oben konfigurierte Benutzer wird bei der Konfiguration der Slave-Maschine benötigt.

Als nächstes fügen Sie die Konfiguration zur MySQL-Konfigurationsdatei /etc/my.cnf hinzu:

vim /etc/my.cnf //Fügen Sie unter [mysqld] die #Datenbank-ID-Nummer hinzu. Wenn sie 1 ist, bedeutet dies Master. Die Master-ID von Master und Slave können nicht konsistent sein.
Server-ID = 1
# Binlog aktivieren
log-bin=mysql-bin
#Die Datenbank, die synchronisiert werden muss. Wenn nicht konfiguriert, werden alle Datenbanken synchronisiert binlog-do-db=test
#Die Anzahl der Tage, die Binlog-Protokolle aufbewahrt werden. Protokolle, die älter als 10 Tage sind, werden gelöscht.
#Um zu verhindern, dass zu viele Dateien zu groß sind und dadurch nicht genügend Speicherplatz zur Verfügung steht.
Ablauf der Protokolle in Tagen = 10

Nachdem die Konfiguration abgeschlossen ist, starten Sie MySQL neu

systemctl Neustart MariaDB

Geben Sie dann MySQL ein, überprüfen Sie die aktuellen Binlog-Protokollinformationen und zeichnen Sie sie auf.

mysql -uroot -p

show master status\G //Hier muss kein Semikolon geschrieben werden, da \G funktional einem Semikolon ";" entspricht.

Bildbeschreibung hier einfügen
**

Slave-Konfiguration

Die Slave-Konfiguration ist einfacher. Die Slave-Maschine kann eine Server-ID in /etc/my.cnf hinzufügen.

# Nicht mit anderen MySQL-Dienst-IDs wiederholen server-id=111

Melden Sie sich dann bei der MySQL-Befehlszeile an. Geben Sie das folgende SQL ein

ÄNDERN SIE MASTER IN 
MASTER_HOST='192.168.190.135', //Host-IP
MASTER_USER='root', // zuvor erstelltes Benutzerkonto MASTER_PASSWORD='rootroot', // zuvor erstelltes Benutzerkennwort MASTER_LOG_FILE='mysql-bin.000002', // Binlog-Protokollname des Masterhosts MASTER_LOG_POS=245, // Binlog-Protokolloffset Position
master_port=3306;//Port

Nach erfolgreichem Vorgang starten Sie den Slave-Dienst

Slave starten;

Überprüfen Sie anschließend, ob der Start erfolgreich war.

Slave-Status anzeigen\G

Sie können die folgenden Informationen sehen: (Die Ausgabe ist lang, nur ein Teil davon wird abgefangen)

Bildbeschreibung hier einfügen

Als nächstes können wir die Master-Slave-Replikation testen

Führen Sie SQL auf dem Master-Host aus:

CREATE TABLE `Warenmarke` (
	`id` BIGINT (20) UNSIGNED NOT NULL auto_increment,
	`brand_name` VARCHAR (50) NOT NULL COMMENT 'Markenname',
	`gmt_create` ZEITSTEMPEL NICHT NULL STANDARD CURRENT_TIMESTAMP BEI UPDATE CURRENT_TIMESTAMP,
	`gmt_update` ZEITSTEMPEL NICHT NULL STANDARD '0000-00-00 00:00:00',
	PRIMÄRSCHLÜSSEL (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = 'Markentabelle';

Nachdem die Ausführung abgeschlossen ist, aktualisieren wir die Bibliothekstabelle und sehen

Bildbeschreibung hier einfügen

Sie können sehen, dass ich die Ausführung auf der Master-Maschine durchführe und der Slave direkt mit dieser synchronisiert wird. Zu diesem Zeitpunkt ist die Master-Slave-Synchronisierung von MySQL abgeschlossen.

Bezüglich der Lese-/Schreibtrennung werden im nächsten Kapitel verfügbare Lösungen und Überwachungen beschrieben und der Link ergänzt.

**Hinweis: Ein Teil des Inhalts dieses Kapitels stammt von @Alibaba Cloud Developer**

Zusammenfassen

Dies ist das Ende dieses Artikels über MySQL-Master-Slave-Replikation und Lese-/Schreibtrennung mit Bildern und Text. Weitere relevante Inhalte zu MySQL-Master-Slave-Replikation und Lese-/Schreibtrennung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der MySQL Master-Slave-Replikation, Lese-/Schreibtrennung, Sicherung und Wiederherstellung
  • Detaillierte Erläuterung der Konfigurationsmethode der Lese-/Schreibtrennung bei der MySQL-Master-Slave-Replikation
  • MySQL5.6 Replikations-Master-Slave-Replikation (Lese-/Schreibtrennung) Konfiguration vollständige Version
  • Detaillierte Erläuterung der Konstruktion der Lese-/Schreibtrennung bei der MySQL-Master-Slave-Replikation
  • So erstellen Sie eine MySQL-Master-Slave-Replikation und Lese-/Schreibtrennung auf der CentOS-Serverplattform
  • Detaillierte Erläuterung der Prinzipien und der Verwendung der MySQL-Master-Slave-Replikation und der Lese-/Schreibtrennung
  • Detaillierte Erläuterung der MySQL Master-Slave-Replikation und der Lese-/Schreibtrennung
  • Ein Artikel zum Verständnis der MySQL Master-Slave-Replikation und der Lese-/Schreibtrennung

<<:  So implementieren Sie die King of Glory-Personal-Ladeseite mit CSS3

>>:  Ungewöhnliche, aber nützliche Tags in Xhtml

Artikel empfehlen

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.21

Notieren Sie die Installations- und Konfiguration...

Stellen Sie IE8 so ein, dass Code im IE7-Stil verwendet wird

<meta http-equiv="x-ua-kompatibel" co...

Bootstrap 3.0-Lernunterlagen für Anfänger

Als ersten Artikel dieser Studiennotiz beginnen w...

Der gesamte Prozess der Konfiguration von Hive-Metadaten für MySQL

Gehen Sie im Hive-Installationsverzeichnis in das...

JavaScript navigator.userAgent erhält Browserinformationen – Fallerklärung

Der Browser ist für uns wahrscheinlich das vertra...

So ändern Sie die Farbe der gesamten Zeile (tr), wenn die Maus in HTML stoppt

Verwenden Sie reines CSS, um die Hintergrundfarbe...

So ermitteln Sie die Ausführungszeit eines Befehls oder Prozesses in Linux

Auf Unix-ähnlichen Systemen wissen Sie möglicherw...

Backup zwischen MySQL-Datenbank und Oracle-Datenbank importieren

Importieren Sie die aus der Oracle-Datenbank expo...

Verständnis des CSS-Selektorgewichts (persönlicher Test)

Code kopieren Der Code lautet wie folgt: <styl...