Artikelverzeichnis
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;
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
. Auf diese Weise müssen Sie nur den Teil in der Box ändern.
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
Erfolg
Fehlerbehebung
Geben Sie das erstellte Verzeichnis für die Montageprotokolldatei ein und geben Sie das Kanalverzeichnis ein. Darin befinden sich zwei Protokolldateien
Wenn während des Betriebs Probleme auftreten, können Sie diese Protokolle überprüfen, um das Problem zu beheben.
Beenden