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
Inhaltsverzeichnis 1. Synchrones AJAX 2. Asynchro...
Vertreter / egrep Syntax: grep [-cinvABC] 'wo...
Es gibt drei Möglichkeiten, CSS einzuführen: Inli...
In diesem Artikel wird der spezifische Code von V...
Viele Menschen leben heute im Internet und die Suc...
HTML ist eine Hybridsprache, die zum Veröffentlic...
Das CentOS-Projekt, ein 100 % kompatibler Neuaufb...
1. Es muss die InnoDB-Speicher-Engine verwendet w...
Wenn Sie das Idea-Entwicklungstool zum Debuggen v...
Dieser Artikel veranschaulicht anhand von Beispie...
Inhaltsverzeichnis Hintergrund erkunden Zusammenf...
Inhaltsverzeichnis Mischen Mixin-Hinweis (doppelt...
1. Installation 1. MySQL herunterladen Download-A...
Wirkung: Code: <Vorlage> <div Klasse=&qu...
Beim Erstellen einer Website treten immer wieder P...