Docker setzt Canal zur Überwachung des MySQL-Binlogs ein

Konzeptübersicht

binlog

Das Binärprotokoll von MySQL, binlog, kann als das wichtigste Protokoll von MySQL bezeichnet werden. Es zeichnet alle DDL- und DML-Anweisungen (mit Ausnahme der Datenabfrageanweisungsauswahl) in Form von Ereignissen auf und enthält auch die Zeit, die für die Ausführung der Anweisung verbraucht wird. MySQLs Binärdatei log Es ist transaktionssicher.

Kanal

Übersetzt als Wasserstraße/Pipeline/Graben basiert sein Hauptzweck auf der inkrementellen Protokollanalyse der MySQL-Datenbank und bietet inkrementelle Datenabonnements und Verbrauchskanäle
, mit denen Änderungen in Datenbankdaten überwacht werden können, um neue Daten oder geänderte Daten zu erhalten.
Das Arbeitsprinzip von Canal besteht darin, sich als MySQL-Slave zu tarnen, das Interaktionsprotokoll des MySQL-Slaves zu simulieren und das Dump-Protokoll an MySQL Mater zu senden. MySQL Mater empfängt die von Canal gesendete Dump-Anfrage und beginnt, das Binärprotokoll an Canal zu übertragen. Dann Der Kanal analysiert das Binärprotokoll und sendet es dann an das Speicherziel.

MySQL-Konfiguration

Zuerst muss MySQL im Docker installiert und das Konfigurationsdateiverzeichnis gemountet werden.
Öffnen Sie das auf dem Host gemountete MySQL-Konfigurationsdateiverzeichnis.

vim my.conf

Fügen Sie der Konfigurationsdatei die folgende Konfiguration hinzu, um Binlog zu aktivieren

[mysqld]
skip-name-resolve
character_set_server=utf8
datadir=/var/lib/mysql
server-id=1000
log-bin=/var/lib/mysql/mysql-bin
binlog-do-db=canal

Nach Abschluss speichern und beenden.
Starten Sie MySQL im Docker neu.

Kanalkonfiguration

Erstellen Sie ein Montageverzeichnis

Erstellen Sie ein neues Verzeichnis /opt/docker/canal/conf. Wir werden später zwei Konfigurationsdateien platzieren und mounten. Erstellen Sie ein
neues Verzeichnis /opt/docker/canal/log zum Mounten von Protokolldateien.

mkdir -p /opt/docker/canal/{conf,log}

Berechtigungen festlegen

chmod -R 777 /opt/docker/canal/conf
chmod -R 777 /opt/docker/canal/log

Erstellen Sie ein MySQL Canal-Konto

Ich konfiguriere es hier direkt in Navicat. Der Benutzername und das Passwort sind beide canal.

create user canal@'%' IDENTIFIED by 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT,SUPER ON *.* TO 'canal'@'%' identified by 'canal';
FLUSH PRIVILEGES;

Fügen Sie hier eine Bildbeschreibung ein

Bild ziehen

docker pull canal/canal-admin:v1.1.5

Container ausführen

Einfache Bedienung

Lassen Sie es uns zunächst kurz ausführen, um die Konfigurationsdatei zu erhalten.

docker run --name canal -d canal/canal-server:v1.1.5

Kopieren Sie die Konfigurationsdatei auf den Hostcomputer

Kopieren Sie die beiden Konfigurationsdateien im Container in das von uns erstellte Conf-Verzeichnis

docker cp canal:/home/admin/canal-server/conf/canal.properties /opt/docker/canal/conf
docker cp canal:/home/admin/canal-server/conf/example/instance.properties /opt/docker/canal/conf

Konfigurationsdatei ändern

Ändern Sie die Konfigurationsdatei „instance.properties“.
Die erste Seite sieht folgendermaßen aus. Hier ändern wir die Teile in der Box. Die erste ist die Slave-ID, die wir in der MySQL-Konfigurationsdatei festgelegt haben. Das Folgende ist die Datenbankadresse, IP: Portnummer . Die zweite Seite ist lang
Fügen Sie hier eine Bildbeschreibung ein
. Auf diese Weise müssen Sie nur den Teil in der Box ändern.
Fügen Sie hier eine Bildbeschreibung ein
Das Obige ist das Konto und das Passwort, die wir zuvor für Canal erstellt haben, beide sind Canal. Das
Folgende ist die Bibliothekstabelle, die benötigt wird überwacht werden. Das Bild ist der Standardzustand, überwacht alle und kann entsprechend den tatsächlichen Anforderungen geändert werden.

Löschen Sie den zuvor ausgeführten Kanalcontainer

Kanal pausieren

docker stop canal

Kanal löschen

docker rm canal

Führen Sie den Canal-Container offiziell aus

Achten Sie darauf, die MySQL-Adresse zu ändern

 docker run -d -it -h 127.0.0.1 -e server.port=8089 \
 -e canal.adminUser=admin -e canal.adminPasswd=admin \
 -e spring.datasource.address=mysql地址:3306  \
 -e spring.datasource.database= canal_manager  \
 -e spring.datasource.username= canal  \
 -e spring.datasource.password= canal  \
 --name=canal-admin -p 8089:8089 \
 -m 1024m canal/canal-admin:v1.1.5

Laufstatus anzeigen

docker ps -a

Fügen Sie hier eine Bildbeschreibung ein
Erfolg

Fehlerbehebung

Geben Sie das erstellte Verzeichnis für die Montageprotokolldatei ein und geben Sie das Kanalverzeichnis ein. Darin befinden sich zwei Protokolldateien

Fügen Sie hier eine Bildbeschreibung ein

Wenn während des Betriebs Probleme auftreten, können Sie diese Protokolle überprüfen, um das Problem zu beheben.


Beenden

Je suppose que tu aimes

Origine blog.csdn.net/m0_68681879/article/details/132831406
conseillé
Classement