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:
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:
|
<<: Flex-Grow-, Flex-Shrink-, Flex-Basis- und Neun-Raster-Layout verstehen
Lösung für das Problem der automatischen Trennung...
In diesem Artikel wird der Beispielcode für erwei...
In diesem Experiment konfigurieren wir die standa...
Inhaltsverzeichnis Zusammenfassen Zusammenfassen ...
In Sprachen werden häufig Makros zur Implementier...
Inhaltsverzeichnis 1. Baidu Map API-Zugriff 2. Ve...
Inhaltsverzeichnis Überblick So erreichen Sie es ...
Inhaltsverzeichnis Probleme mit der Ressourcenver...
Während der Entwicklung wurden die folgenden Situ...
Inhaltsverzeichnis Verwendung von CURRENT_TIMESTA...
Hintergrund go-fastdfs ist ein verteiltes Dateisy...
1. MySQL installieren # Laden Sie MySQL im Docker...
Methode 1: Verwenden Sie den Befehl SET PASSWORD ...
In diesem Artikel wird der spezifische Code von V...
Dieser Artikel veranschaulicht anhand von Beispie...