Bei der sogenannten kaskadierenden Replikation synchronisiert der Masterserver die Daten nur mit einem Slave-Server, und dann synchronisiert der Slave-Server die Daten mit allen Slave-Servern im Backend. Dadurch wird der Schreibdruck des Masterservers und die Netzwerk-E/A der replizierten Daten verringert. 1. Konfigurieren Sie den Masterserver 1. Ändern Sie die Hauptkonfigurationsdatei vim /etc/meine.cnf Fügen Sie die folgenden zwei Konfigurationszeilen unter dem Konfigurationsblock [mysql] hinzu [mysql] log_bin # Binäres Logging aktivieren server_id=1 # Eine global eindeutige ID für den aktuellen Knoten festlegen 2. Starten Sie den MySQL-Dienst neu, damit die Konfiguration wirksam wird systemctl Neustart Mairadb 3. Erstellen Sie ein Benutzerkonto mit Kopierberechtigung GRANT REPLICATION SLAVE ON *.* AN ‚repluser‘@‚HOST‘ IDENTIFIZIERT DURCH ‚replpass‘; Befehlsanalyse:
Der Zweck dieses Befehls besteht darin, repluser zu autorisieren, den gesamten Inhalt der Datenbank zu kopieren 2. Konfiguration des Relay-Slave-Servers 1. Ändern Sie die Hauptkonfigurationsdatei vim /etc/meine.cnf Fügen Sie die folgenden zwei Konfigurationszeilen in den Konfigurationsblock [mysql] ein [mysqld] log_bin server_id=2 #Legen Sie eine global eindeutige ID-Nummer für den aktuellen Knoten fest read_only=ON #Beschränken Sie den Slave-Server auf schreibgeschützt. „Hinweis: Diese Einschränkung ist für Benutzer mit SUPER-Berechtigungen ungültig.“ log_slave_updates #Der Zweck dieses Elements besteht darin, das Binärprotokoll des Masterservers auf dem lokalen Computer aufzuzeichnen und das Binärprotokoll dann auf andere Slave-Server im Backend zu kopieren 2. Starten Sie den MySQL-Dienst neu, damit die Konfiguration wirksam wird systemctl Neustart MariaDB 3. Verwenden Sie ein Benutzerkonto mit Replikationsberechtigungen, um eine Verbindung zum primären Server herzustellen und den Replikationsthread zu starten ÄNDERN SIE MASTER IN MASTER_HOST='host', #Geben Sie die IP des Master-Hosts an MASTER_USER='repluser', #Geben Sie den autorisierten Benutzernamen des Masters an MASTER_PASSWORD='replpass', #Geben Sie das autorisierte Benutzerkennwort an MASTER_LOG_FILE='mysql-bin.xxxxx', #Geben Sie das Binärprotokoll an, aus dem der Masterserver kopiert wird MASTER_LOG_POS=#; #Position des Binärprotokolls, Sie können diesen Befehl auf dem Masterserver ausführen, um es anzuzeigen, Masterprotokolle anzeigen; Starten Sie die Replikationsthreads IO_THREAD und SQL_THREAD SLAVE STARTEN; 4. Überprüfen Sie den Status des Relay-Slave-Servers MariaDB [(keine)]> Slave starten; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) MariaDB [(keine)]> Slave-Status anzeigen\G *************************** 1. Reihe *************************** Slave_IO_State: Wartet darauf, dass der Master ein Ereignis sendet Master_Host: 192.168.68.7 Master_Benutzer: repluser Master_Port: 3306 Verbindungswiederholung: 60 Master_Log_File: mariadb-bin.000001 Read_Master_Log_Pos: 557 Relay_Log_File: mariadb-relay-bin.000002 Relay_Log_Pos: 843 Relay_Master_Log_File: mariadb-bin.000001 Slave_IO_Running: Ja „Achten Sie besonders darauf, dass der Thread nicht aktiv ist, wenn NEIN angezeigt wird.“ Slave_SQL_Running: Ja „Achten Sie besonders darauf, ob es NEIN ist, denn das bedeutet, dass der Thread nicht aktiv ist.“ Replicate_Do_DB: Replikat_Ignorieren_DB: Tabelle_replizieren: Tabelle_Ignorieren_replizieren: Wild_Do_Tabelle replizieren: Tabelle_Wild_Ignore_replizieren: Last_Errno: 0 Letzter_Fehler: Skip_Counter: 0 Exec_Master_Log_Pos: 557 Relay_Log_Space: 1139 Until_Condition: Keine Bis_Log_Datei: Bis_Log_Pos: 0 Master_SSL_Allowed: Nein Master_SSL_CA_Datei: Master_SSL_CA_Pfad: Master_SSL_Zertifikat: Master_SSL_Chiffre: Master_SSL_Schlüssel: Seconds_Behind_Master: 0 „Dieses Element gibt den Synchronisierungszeitpunkt an. 0 bedeutet sofortige Synchronisierung.“ Master_SSL_Verify_Server_Cert: Nein Last_IO_Errno: 0 Letzter_E/A-Fehler: Last_SQL_Errno: 0 Letzter_SQL_Fehler: Server-IDs replizieren_ignorieren: Master_Server_Id: 1 3. Backend-Slave-Konfiguration 1. Ändern Sie die Konfigurationsdatei vim /etc/meine.cnf Fügen Sie die folgenden zwei Konfigurationszeilen in den Konfigurationsblock [mysql] ein [mysqld] server_id=3 #Legen Sie eine global eindeutige ID-Nummer für den aktuellen Knoten fest read_only=ON #Beschränken Sie den Slave-Server auf schreibgeschützt. „Hinweis: Diese Einschränkung ist für Benutzer mit SUPER-Berechtigungen ungültig.“ 2. Starten Sie den MySQL-Dienst neu, damit die Konfiguration wirksam wird systemctl Neustart MariaDB 3. Verwenden Sie ein Benutzerkonto mit Replikationsberechtigungen, um eine Verbindung zum primären Server herzustellen und den Replikationsthread zu starten ÄNDERN SIE MASTER IN MASTER_HOST = 'Relay-Host', #Geben Sie die IP des Relay-Slave-Hosts an MASTER_USER='repluser', #Geben Sie den autorisierten Benutzernamen des Masters an MASTER_PASSWORD='replpass', #Geben Sie das autorisierte Benutzerkennwort an MASTER_LOG_FILE='mysql-bin.xxxxx', #Geben Sie das Binärprotokoll an, von dem der Relay-Slave-Server mit dem Kopieren beginnt MASTER_LOG_POS=#; #Position des Binärprotokolls, Sie können diesen Befehl auf dem Slave-Server ausführen, um es anzuzeigen, Master-Protokolle anzeigen; Starten Sie die Replikationsthreads IO_THREAD und SQL_THREAD SLAVE STARTEN; 4. Überprüfen Sie den Status des Slave-Servers MariaDB [(keine)]> Slave starten; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) MariaDB [(keine)]> Slave-Status anzeigen\G *************************** 1. Reihe *************************** Slave_IO_State: Wartet darauf, dass der Master ein Ereignis sendet Master_Host: 192.168.68.17 Master_Benutzer: repluser Master_Port: 3306 Verbindungswiederholung: 60 Master_Log_File: mariadb-bin.000001 Read_Master_Log_Pos: 557 Relay_Log_File: mariadb-relay-bin.000002 Relay_Log_Pos: 843 Relay_Master_Log_File: mariadb-bin.000001 Slave_IO_Running: Ja „Achten Sie besonders darauf, dass der Thread nicht aktiv ist, wenn NEIN angezeigt wird.“ Slave_SQL_Running: Ja „Achten Sie besonders darauf, ob es NEIN ist, denn das bedeutet, dass der Thread nicht aktiv ist.“ Replicate_Do_DB: Replikat_Ignorieren_DB: Tabelle_replizieren: Tabelle_Ignorieren_replizieren: Wild_Do_Tabelle replizieren: Tabelle_Wild_Ignore_replizieren: Last_Errno: 0 Letzter_Fehler: Skip_Counter: 0 Exec_Master_Log_Pos: 557 Relay_Log_Space: 1139 Until_Condition: Keine Bis_Log_Datei: Bis_Log_Pos: 0 Master_SSL_Allowed: Nein Master_SSL_CA_Datei: Master_SSL_CA_Pfad: Master_SSL_Zertifikat: Master_SSL_Chiffre: Master_SSL_Schlüssel: Seconds_Behind_Master: 0 „Dieses Element gibt den Synchronisierungszeitpunkt an. 0 bedeutet sofortige Synchronisierung.“ Master_SSL_Verify_Server_Cert: Nein Last_IO_Errno: 0 Letzter_E/A-Fehler: Last_SQL_Errno: 0 Letzter_SQL_Fehler: Server-IDs replizieren_ignorieren: Master_Server_Id: 1 5. Erstellen Sie abschließend einen Datenbanktest auf dem Masterserver, um zu prüfen, ob dieser synchronisiert ist Kaskadierende Replikationsfunktionen
Zusammenfassen
Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Vollständiges Beispiel einer Vue-Polling-Request-Lösung
>>: Detailliertes Tutorial zur Installation von Nginx auf CentOS8 (Bild und Text)
Bereitstellen einer Datenbank basierend auf Docke...
Einführung Unser Unternehmen ist an der Forschung...
Inhaltsverzeichnis Warum WebSocket verwenden? Soc...
Vorwort: Beim Entwerfen einer Tabelle in MySQL em...
Die GtkTreeView-Komponente ist eine erweiterte Ko...
In diesem Artikel finden Sie das grafische Tutori...
Ersetzen Sie ihn durch den optimalen Datenbankver...
Inhaltsverzeichnis Tomcat bereitstellen 1. Herunt...
Inhaltsverzeichnis JavaScript-Objekte 1. Definiti...
Eine kurze Einführung in protobuf Protobuf ist Go...
<br />Verwandte Artikel: 9 praktische Tipps ...
Beschreibung der Situation: Heute habe ich mich b...
1. Native Netzwerkanforderung 1. XMLHttpRequest (...
In diesem Artikel wird die spezifische Methode zu...
Alibaba Cloud Server kann keine Verbindung zum FT...