数据库系列——使用Canal Admin实现MySQL增量数据同步运维管理-爱代码爱编程
基于上一篇文章:https://blog.csdn.net/Coder_Boy_/article/details/111055381
这里主要基于Canal Admin搭建一个MySQL增量数据管理运维web平台
Canal Admin是为canal提供整体配置管理、节点运维等面向运维的功能,提供相对友好的WebUI操作界面,方便更多用户快速和安全的操作
实际安装使用中会遇到一些坑,所以作为
踩坑笔记
,介绍本地安装使用情况。
canal-admin
需依赖canal
,且canal
版本>=1.1.4
具体流程
1.下载canal-admin
https://hub.fastgit.org/alibaba/canal/releases/download/canal-1.1.4/canal.admin-1.1.4.tar.gz
2.解压
3.初始化本地数据库
连接本地数据库,导入conf/canal_manager.sql
mysql -uroot -p
# 导入初始化SQL
> source conf/canal_manager.sql
cd 到解压目录 D:\DevResource\ELK\canal.admin-1.1.4 (你自己的安装目录)
4.修改配置文件 conf/application.yml
server:
port: 8089
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
spring.datasource:
address: 127.0.0.1:3306
database: canal_manager
username: root
password: 123456 ## 你自己的数据库密码
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://${spring.datasource.address}/${spring.datasource.database}?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
hikari:
maximum-pool-size: 30
minimum-idle: 1
canal:
adminUser: admin
adminPasswd: admin
5.启动bin/startup.sh
访问 http://127.0.0.1:8089/ ,默认用户和密码:admin/123456
,若访问失败,排查logs
下面的日志文件,定位错误原因
启动日志
这里需要注意:你的数据库版本,默认使用MySQL5.1的驱动包,如果你的是MySQL8 需要替换成如下包
启动后打开浏览器访问
http://localhost:8089/
canal-admin
中此时集群管理
,Server管理
,Instance管理
都没有数据,需要下面的一些配置。
6.canal配置文件修改
到Canal那边配置
修改canal
下的配置文件 conf/canal_local.properties
# register ip
canal.register.ip =127.0.0.1
# canal admin config
canal.admin.manager = 127.0.0.1:8089
canal.admin.port = 11110
canal.admin.user = admin
canal.admin.passwd = 6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
# admin auto register
canal.admin.register.auto = true
canal.admin.register.cluster =
使用配置canal_local.properties
启动canal
startup.sh local
访问canal-admin这边,新建一个对应的Server与canal_local.properties中配置对应
确定后,可以看到自动出现了一个Server,可在此页面进行Server的配置、修改、启动、查看log等操作
下面接着配置
去Instance列表
新增Instance
,可选择载入模版
进行修改
上图中meta.dat存储着 单机搭建模式下的元数据的信息,如果是集群搭建模式,需要zookeeper来协调服务并管理元数据。 本文是单机搭建
上面对应关系的example一定要一致(名称可以随意,但要一致)
运行Instance
和Server
,查看logs
,若无异常信息,则说明配置成功
都配置好后,你的 canal server 所在的服务器的服务再次启动时,会优先以web-ui 中配置的配置文件 执行 。
源码拓展部分
查看源码发现有个问题,如下截图所述:
源码跟踪:
下面是刷新走的代码逻辑: 不清楚官方为啥页面刷新就会重启启动所有instance,即使你之前stop了
希望大家注意这个问题,不然疑问:我明明停止了Instance了,为啥还是运作中的,看下源码就知道了。
记录一下这个bug
在server1启动后,挂载在它下面的instance无法停止掉,会被自动刷新重启,不知道官网这里有何用意(还是有特殊场景),问题已提交阿里Canal issue
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/Coder_Boy_/article/details/111085898