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

Ein einfaches Beispiel für die MySQL-Suche nach Daten im Umkreis von N Kilometern

Gemäß dem Koeffizienten von Pi und dem Radius der...

Ubuntu startet den Remote-Anmeldevorgang des SSH-Dienstes

SSH-Secure-Shell, ermöglicht sichere Remote-Anmel...

17 JavaScript-Einzeiler

Inhaltsverzeichnis 1. DOM & BOM bezogen 1. Üb...

Vergleich der JS-Array-Loop-Methode und der Effizienzanalyse

Array-Methoden JavaScript bietet viele Array-Meth...

So stellen Sie zabbix_agent in Docker bereit

zabbix_agent-Bereitstellung: Empfehlung: zabbix_a...

Implementierungsschritte zur Installation von RocketMQ im Docker

Inhaltsverzeichnis 1. Rufen Sie das Bild ab 2. Br...

Einführung in die Verwendung des MySQL mysqladmin-Clients

Inhaltsverzeichnis 1. Überprüfen Sie den Status d...

Detaillierte Erklärung zur Formatierung von Zahlen in MySQL

Aus beruflichen Gründen musste ich kürzlich Zahle...

Vue-cli erstellt ein Projekt und analysiert die Projektstruktur

Inhaltsverzeichnis 1. Geben Sie ein Verzeichnis e...

Anweisungen zur Verwendung der Option --rm von Docker Run

Wenn der Docker-Container beendet wird, bleibt da...

display:grid in CSS3, eine Einführung in das Rasterlayout

1. Rasterlayout (Raster): Es unterteilt die Webse...

HTML ungeordnete Liste Aufzählungspunkte mit Bildern CSS schreiben

Erstellen Sie eine HTML-Seite mit einer ungeordnet...