Detaillierte Erläuterung des auf Python basierenden MySQL-Replikationstools

Detaillierte Erläuterung des auf Python basierenden MySQL-Replikationstools

1. Einleitung

python-mysql-replication ist ein in Python implementiertes MySQL-Replikationsprotokolltool. Wir können es verwenden, um Binärprotokolle zu analysieren, Einfügungen, Aktualisierungen, Löschungen und andere Ereignisse im Protokoll abzurufen und auf dieser Grundlage andere Geschäftsanforderungen zu erfüllen. Wenn sich beispielsweise Daten ändern, wird der Cache ungültig gemacht und es werden DML-Ereignisse überwacht, um nachgelagerte Geschäftspartner zu benachrichtigen, damit diese entsprechende Maßnahmen ergreifen können.

Projektinformationen

Zweites Training

2.1 Installation und Konfiguration

Holen Sie sich den Quellcode

Git-Klon http://www.github.com/noplay/python-mysql-replication

Installieren mit pip

pip install mysql-replication

Berechtigungen: Sie können das Replikationskonto direkt oder andere Konten verwenden, das Konto muss jedoch über die Berechtigungen SELECT, REPLICATION SLAVE und REPLICATION CLIENT verfügen.

GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON. AN 'Replikator'@'%' IDENTIFIZIERT DURCH 'xxxxx';

Die Parametereinstellungen für das Datenbankprotokoll lauten wie folgt:

log_bin=ein,binlog_format=Zeile,binlog_row_image=VOLL

2.2 Einführung in die Kernklasse

Der Einstiegspunkt der python-mysql-replication ist die Klasse BinLogStreamReader(). Wenn wir dieses Tool verwenden, müssen wir einen BinLogStreamReader()-Objektstream instanziieren. BinLogStreamReader registriert sich über ReportSlave als Slave-Rolle bei der Masterdatenbank, um MySQL-Binlog-Broadcasts zu empfangen. Interessierte können die konkrete Implementierung des Codes studieren.

Diese Instanz bietet eine Sammlung verschiedener Ereignisse zum Parsen des Binärprotokolls, und jedes Ereignis ist auch ein Objekt.

Die zum Initialisieren der BinLogStreamReader()-Instanz erforderlichen Parameter sind wie folgt:

2.3 Wie wird es verwendet?

Der einfachste Verwendungsskriptname ist pyreplica.py

Öffnen Sie zwei Fenster, eines für die Ausführung und das andere für MySQL zum Schreiben oder Ändern von Daten

python pyreplica.py

Die Ausgabe lautet wie folgt:

2.3 Erweiterung

Basierend auf der von diesem Tool bereitgestellten Protokollereignisanalyse können wir viele Dinge tun. Das bekanntere Tool binlog2sql verwendet dieses Tool, um Binlog für das Daten-Rollback zu analysieren.

mysql-replication.py

Das Ergebnis der Ausführung des Skripts ist wie folgt

Zusätzlich zum Parsen des Binärprotokolls können wir auch thon-mysql-replication verwenden, um eine vollständige und inkrementelle Datenmigration durchzuführen. Es kann beispielsweise verwendet werden, wenn Sie nur einige große Tabellen statt der gesamten Datenbank migrieren möchten. Interessierte Freunde können über den ungefähren Algorithmus nachdenken.

Zusammenfassen

Oben ist das vom Herausgeber vorgestellte Python-basierte MySQL-Replikationstool. Ich hoffe, es wird allen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!
Wenn Sie diesen Artikel hilfreich finden, können Sie ihn gerne abdrucken und dabei bitte die Quelle angeben. Vielen Dank!

Das könnte Sie auch interessieren:
  • In Python geschriebene Codebeispiele für MySQL-Verwaltungstools
  • Python implementiert ein kleines Tool zum Lesen von Excel und Schreiben in MySQL
  • Teilen einfacher Schritte zum Bedienen einer MySQL-Datenbank mit Python
  • Schritte für den Python-Crawler zum Crawlen globaler Epidemiedaten und zum Speichern in der MySQL-Datenbank
  • Python crawlt die Echtzeit-Epidemiedaten von Tencent und speichert sie im Beispielcode der MySQL-Datenbank
  • Lösen Sie das Problem der Python-MySQL-Insert-Anweisung
  • Python fügt Nullwerte in MySQL ein
  • Python implementiert ein Skript zum Synchronisieren inkrementeller MySQL-Tabellendaten mit Clickhouse
  • Entwickeln Sie ein kleines Tool zur Bedienung von MySQL mit Python

<<:  Zwei Implementierungslösungen für die Vuex-Datenpersistenz

>>:  So installieren Sie Theano und Keras auf einem Ubuntu-System

Artikel empfehlen

JavaScript-Beispielcode zum Ermitteln, ob eine Datei vorhanden ist

1. Geschäftsszenario Ich habe kürzlich Entwicklun...

Proxy_pass-Methode in mehreren if in Nginx-Standorten

1. Lassen Sie uns zunächst das relevante Wissen z...

Vier Lösungen für die Verwendung von setTimeout in JS for-Schleifen

Inhaltsverzeichnis Überblick Lösung 1: Verschlüss...

HTML-Tutorial, leicht zu erlernende HTML-Sprache (2)

*******************Einführung in die HTML-Sprache ...

So implementieren Sie Funktions-Currying und -Decurrying in Javascript

Funktion Currying (schwarzes Fragezeichen)? ? ? C...

vsCode generiert Vue-Vorlagen mit einem Klick

1. Verwenden Sie die Tastenkombination Strg + Ums...

So autorisieren Sie Remoteverbindungen in MySQL unter Linux

Hinweis: Andere Maschinen (IP) können ohne Autori...

9 praktische CSS-Eigenschaften, die Web-Frontend-Entwickler kennen müssen

1. Abgerundete Ecken Heutige Webdesigns halten stä...

Einführung in den Installationsprozess von MySQL 8.0 in einer Linux-Umgebung

Inhaltsverzeichnis Vorwort 1. Linux ändert die Yu...