Einführung in die Verwendung des MySQL pt-slave-restart-Tools

Einführung in die Verwendung des MySQL pt-slave-restart-Tools

Beim Einrichten einer MySQL-Master-Slave-Replikationsumgebung stoßen Sie häufig auf ein Szenario, in dem sowohl die Master- als auch die Slave-Datenbanken das Kontokennwort des Benutzers initialisieren müssen. Unter normalen Umständen müssen Sie das Binärprotokoll auf Sitzungsebene sowohl in der Master- als auch in der Slave-Datenbank deaktivieren, bevor Sie Benutzerinformationen importieren.

Manchmal wird jedoch die Voraktion zum Schließen des Binärprotokolls auf Sitzungsebene ignoriert. Beispielsweise importieren die Master- und Slave-Bibliotheken im GTID-basierten Replikationsmodus die Konto- und Kennwortinformationen des Benutzers direkt. Die Master- und Slave-Bibliotheken zeichnen die Konto- und Kennworttransaktionen in ihren eigenen GTIDs auf. Wenn wir zu diesem Zeitpunkt die GTID-Methode zum Erstellen der Replikation verwenden, tritt ein Fehler auf. Da die Slave-Bibliothek bereits über ein Konto verfügt, weisen die von der Master-Bibliothek mit der Slave-Bibliothek synchronisierten Benutzerinformationen einen Fehler auf, der darauf hinweist, dass der Benutzer bereits vorhanden ist. In diesem Fall müssen wir die SQL-Anweisung zum Erstellen des von der Master-Bibliothek in die Slave-Bibliothek kopierten Benutzers überspringen.

Im GTID-Modus können Sie eine Transaktion überspringen, indem Sie:

Sklave stoppen;
setze gtid_next=xxxxx;
beginnen;
begehen;
setze gtid_next=automatisch;
Slave starten;

Wenn jedoch viele Transaktionen vorhanden sind, können wir sie nicht einzeln überspringen. Wir müssen denselben Fehler stapelweise überspringen. Hier sind mehrere Möglichkeiten, damit umzugehen:

Einführung in drei Parameter des MySQL-Replikationsproblems

Passen Sie den Parameter slave_skip_errors bzw. den Parameter slave_exec_mode an.

Heute werden wir uns eine andere Methode ansehen, nämlich das Tool pt-slave-restart zum Überspringen von Transaktionen zu verwenden. Der Befehl lautet wie folgt:

./pt-slave-restart -uroot -proot123 --error-numbers=1062

Der Befehl ist leicht zu verstehen. Schreiben Sie einfach den Fehlercode deutlich und überspringen Sie ihn. Es werden viele Informationen ausgedruckt. Standardmäßig besteht der ausgedruckte Inhalt aus: Zeitstempel, Verbindungsinformationen, Relay-Protokolldatei, Relay-Protokollposition und der letzten Fehlernummer. Zum Beispiel:

2020-09-22T00:59:09 P=3306,h=192.168.7.194,p=...,u=root-relay-bin.000005 369 1032
2020-09-22T00:59:09 P=3306,h=192.168.7.194,p=...,u=root-relay-bin.000005 726 1032
2020-09-22T00:59:09 P=3306,h=192.168.7.194,p=...,u=root-relay-bin.000005 1085 1032
2020-09-22T00:59:09 P=3306,h=192.168.7.194,p=...,u=root-relay-bin.000005 1444 1032
2020-09-22T00:59:09 P=3306,h=192.168.7.194,p=...,u=root-relay-bin.000005 1800 1032

Sie können mit der Option –verbose weitere Informationen hinzufügen oder mit der Option –quiet die gesamte Ausgabe unterdrücken.

Notiz:

Bei Verwendung einer Multithread-Replikation (slave_parallel_workers > 0) kann pt-slave-restart keine Transaktionen überspringen. pt-slave-restart kann nicht bestimmen, welcher spezifische Slave-Thread die fehlgeschlagene Transaktion für das GTID-Ereignis ausgeführt hat.

Wenn Sie es verwenden müssen, schalten Sie bitte vorübergehend die Worker der Multithread-Replikation aus

Weitere Parameter von pt-slave-restart können Sie mit dem Befehl pt-slave-restart --help anzeigen oder in der folgenden Liste allgemeiner Parameter nachsehen:

--always: Stoppen Sie den Slave-Thread niemals, auch nicht, wenn Sie ihn manuell stoppen. --ask-pass: Ersetzen Sie den Befehl -p, um zu verhindern, dass die Kennworteingabe vom Entwickler hinter Ihnen ausspioniert wird. --error-numbers: Geben Sie an, welche Fehler übersprungen werden sollen. Diese können durch , getrennt werden. --error-text: Auf der Fehlermeldung basierend abgleichen und überspringen. --log: Ausgabe in eine Datei. --recurse: Auf der Masterseite ausführen und die Slaveseite überwachen. --runtime: Wie lange das Tool läuft, bevor es beendet wird: Standardmäßig in Sekunden, m = Minute, h = Stunden, d = Tage.

--slave-user --slave-password: Das Konto und das Passwort der Slave-Datenbank, die beim Ausführen vom Master-Ende verwendet werden --skip-count: Die Anzahl der Fehler, die gleichzeitig übersprungen werden sollen. Wenn Sie mutig sind, können Sie eine größere Zahl festlegen. Wenn nicht angegeben, ist der Standardwert 1 --master-uuid: Geben Sie bei kaskadierender Replikation an, dass Fehler der übergeordneten oder übergeordneten Transaktion übersprungen werden sollen --until-master: Stoppen Sie nach Erreichen der angegebenen master_log_pos, Dateiposition, Format: „file:pos“

--until-relay: Wie oben, stoppt aber basierend auf der Position von relay_log

Das Obige ist der detaillierte Inhalt der Einführung in die Verwendung des MySQL pt-slave-restart-Tools. Weitere Informationen zur Verwendung des MySQL pt-slave-restart-Tools finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Der MySQL-Server läuft mit der Option --read-only und kann diese Anweisung daher nicht ausführen.
  • mysql-Datenbankmysql: [FEHLER] unbekannte Option ''--skip-grant-tables''
  • Detaillierte Erklärung zur Sicherstellung der Konsistenz von MySQL-Ansichten (mit Prüfoption)
  • Lösung für die Fehlermeldung "java.sql.SQLException: Incorrect string value:'\xF0\x9F\x92\xA9\x0D\x0A...'" beim Speichern von Emoticons in MySQL
  • NULL und leere Zeichenfolge in MySQL
  • Ein Beispiel für die Verbindung von MySQL mit PHP über ODBC zu einer beliebigen Datenbank
  • Detaillierte Erklärung zur Installation und vollständigen Deinstallation von MySQL mit apt-get unter Ubuntu
  • Beispiele für die korrekte Verwendung von AES_ENCRYPT() und AES_DECRYPT() zum Verschlüsseln und Entschlüsseln von MySQL
  • Der MySQL-Server wird mit der Option --skip-grant-tables ausgeführt.
  • Detaillierte Erklärung zur Verwendung von pt-heartbeat zur Überwachung der MySQL-Replikationsverzögerung

<<:  Flex-Grow-, Flex-Shrink-, Flex-Basis- und Neun-Raster-Layout verstehen

>>:  Detaillierte Erläuterung der Verwendung der Cloud-native-Technologie Kubernetes Scheduling Unit Pod

Artikel empfehlen

Zusammenfassung der SQL-Deduplizierungsmethoden

Wenn wir SQL zum Extrahieren von Daten verwenden,...

Erläuterung der CSS3-Überlaufeigenschaft

1. Überlauf Überlauf ist Überlauf (Container). We...

So stellen Sie Tomcat stapelweise mit Ansible bereit

1.1 Aufbau der Verzeichnisstruktur Dieser Vorgang...

MySql-Lerntag 03: Verbindungs- und Abfragedetails zwischen Datentabellen

Primärschlüssel: Schlagwort: Primärschlüssel Funk...

Docker-Grundlagen-Tutorial: Detaillierte Erklärung der Dockerfile-Syntax

Vorwort Dockerfile ist ein vom Docker-Programm in...

Verwendung von Docker UI, einem Docker-Visualisierungsverwaltungstool

1. Einführung in DockerUI DockerUI basiert auf de...

So implementieren Sie einen binären Suchbaum mit JavaScript

Eine der am häufigsten verwendeten und diskutiert...

Einfaches Beispiel für den Grenzwertparameter der MySQL-Paging

Zwei Parameter der MySQL-Paging Wählen Sie * aus ...

Hinweise zum passenden MySql 8.0 und entsprechenden Treiberpaketen

MySql 8.0 entsprechendes Treiberpaket passend Nac...

MySQL 5.7.17 Installations- und Konfigurations-Tutorial für Mac

1. MySQL herunterladen Klicken Sie auf die Downlo...