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)
Webanwendungsklasse 1. DownFürAlleOderNurIch Mith...
nginx Version 1.11.3 Bei Verwendung der folgenden...
Inhaltsverzeichnis 1. Umgebungsvariable $PATH: 2....
Die GtkTreeView-Komponente ist eine erweiterte Ko...
Inhaltsverzeichnis Hintergrund Welche Methoden gi...
Szenario Eine aktuelle Anforderung ist eine h5-Se...
Docker ist eine sehr beliebte Containertechnologi...
In diesem Artikelbeispiel wird der spezifische JS...
Wenn wir das Platzhalterzeichen „like %“ verwende...
Einführung in Angular Angular ist ein von Google ...
Inhaltsverzeichnis Vorwort 1. Art von 2. Instanz ...
In diesem Artikel wird der spezifische Code von n...
Inhaltsverzeichnis 1. Inline-Stile 2. Importmetho...
Ich habe einige Werte grob aufgelistet, um die Di...
Der Befehl zur Tabellenerstellung erfordert: Der...