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

Tudou.com Frontend-Übersicht

1. Arbeitsteilung und Prozess <br />Bei Tud...

Vergleich der Effizienz verschiedener Methoden zum Löschen von Dateien in Linux

Testen Sie die Effizienz des Löschens einer große...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.22 winx64

Das Tutorial zur Datenbankinstallation von MySQL-...

IIS und APACHE implementieren die HTTP-Umleitung auf HTTPS

IIS7 Laden Sie das HTTP Rewrite-Modul von der off...

Ähnlich wie HTML-Tags: strong und em, q, cite, blockquote

Es gibt einige Tags in XHTML, die ähnliche Funkti...

Spezifische Verwendung von MySQL-Fensterfunktionen

Inhaltsverzeichnis 1. Was ist eine Fensterfunktio...

Der Unterschied zwischen schreibgeschützt und deaktiviert

Um es zusammenzufassen: „Nur lesen“ ist nur für Ei...

innerHTML-Anwendung

Blanks Blog: http://www.planabc.net/ Die Verwendu...

Bringen Sie Ihnen bei, wie Sie Hive3.1.2 auf Tencent Cloud erstellen

Umgebungsvorbereitung Stellen Sie vor dem Starten...

Realisieren Sie einen super coolen Wasserlichteffekt auf Leinwandbasis

In diesem Artikelbeispiel erfahren Sie den spezif...

So lösen Sie das Problem, dass der Docker-Container keinen Vim-Befehl hat

Finden Sie das Problem Als ich heute versuchte, d...

Detaillierte Erklärung, wann Javascript-Skripte ausgeführt werden

JavaScript-Skripte können überall in HTML eingebe...

Eine kurze Erläuterung der MySQL-Benutzerberechtigungstabelle

MySQL erstellt bei der Installation automatisch e...

Webinterview: Benutzerdefinierte Vue-Komponenten und Aufrufmethoden

Import: Aufgrund der Projektanforderungen werden ...