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
Wenn wir SQL zum Extrahieren von Daten verwenden,...
Inhaltsverzeichnis 1. js-Anweisung Zweitens js-Ar...
1. Überlauf Überlauf ist Überlauf (Container). We...
Nach der Installation von MySQL werden Sie festst...
Problembeschreibung: Nach der Ausführung von dock...
1.1 Aufbau der Verzeichnisstruktur Dieser Vorgang...
Primärschlüssel: Schlagwort: Primärschlüssel Funk...
Vorwort Dockerfile ist ein vom Docker-Programm in...
1. Einführung in DockerUI DockerUI basiert auf de...
Eine der am häufigsten verwendeten und diskutiert...
Beschreibung der Installationsumgebung •Systemver...
Zwei Parameter der MySQL-Paging Wählen Sie * aus ...
MySql 8.0 entsprechendes Treiberpaket passend Nac...
Inhaltsverzeichnis 1. Objektänderungserkennung 2....
1. MySQL herunterladen Klicken Sie auf die Downlo...