数据库系列——使用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 (你自己的安装目录

扫描二维码关注公众号,回复: 12274807 查看本文章

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一定要一致(名称可以随意,但要一致)

运行InstanceServer,查看logs,若无异常信息,则说明配置成功

都配置好后,你的 canal server 所在的服务器的服务再次启动时,会优先以web-ui 中配置的配置文件 执行 。

源码拓展部分

查看源码发现有个问题,如下截图所述:

源码跟踪:

下面是刷新走的代码逻辑: 不清楚官方为啥页面刷新就会重启启动所有instance,即使你之前stop了

 希望大家注意这个问题,不然疑问:我明明停止了Instance了,为啥还是运作中的,看下源码就知道了。

记录一下这个bug

在server1启动后,挂载在它下面的instance无法停止掉,会被自动刷新重启,不知道官网这里有何用意(还是有特殊场景),问题已提交阿里Canal issue

猜你喜欢

转载自blog.csdn.net/Coder_Boy_/article/details/111085898