Canal相关
canal项目位于官方主页,是阿里开源的mysql binlog操作中间件,其介绍在主页都有.
1、git下载canal
在主页的release目录,下载对应版本的canal即可
canal.deployer-1.1.6.tar.gz是canal的运行时,相关数据库的配置都在其下面.
canal.admin-1.1.6.tar.gz是canal的集群管理web站点,cannal可以集群部署
分别下载指定版本的以上所有内容
admin
2、安装jdk
canal运行依赖jdk,下载对应版本的jdk,windows下面需要配置环境变量
新增JAVA_HOME环境变量 值为jdk地址如:E:\jdk1.8.0_201\jdk1.8.0_201
PATH中新增%JAVA_HOME%\bin 路径
3、编写配置文件
参考官方文档Quick Start,配置如下:
canal支持集群部署,这里默认配置文件指向canal.destinations = example所以配置文件路径默认为\canal.deployer-1.1.6\conf\example下的instance.properties文件.这里可以用逗号分割,分配多个.
## mysql serverId canal.instance.mysql.slaveId = 666(不能和集群中的节点一样) #position info canal.instance.master.address = 数据库地址 canal.instance.master.journal.name = canal.instance.master.position = canal.instance.master.timestamp = #canal.instance.standby.address = #canal.instance.standby.journal.name = #canal.instance.standby.position = #canal.instance.standby.timestamp = #username/password,需要改成自己的数据库信息 canal.instance.dbUsername = 数据库用户名 canal.instance.dbPassword = 数据库密码
canal.instance.defaultDatabaseName =数据库名称 canal.instance.connectionCharset = UTF-8 #table regex canal.instance.filter.regex = .\*\\\\..\*(表过滤器)
4、配置canval admin 官方文档
canval admin是canval运行时集群管理web站点,用于管理所有的canal节点.
4.1 canal-template.properties 配置文件
位于conf文件夹下,主要配置解析如下:
# tcp bind ip canal.ip = # register ip to zookeeper canal.register.ip = canal.port = 11111 canal.metrics.pull.port = 11112 # canal instance user/passwd # canal.user = canal # canal.passwd = E3619321C1A937C46A0D8BD1DAC39F93B27D4458 # canal admin config #canal.admin.manager = 127.0.0.1:8089 默认访问地址 canal.admin.port = 11110 端口 canal.admin.user = admin 默认访问用户名 canal.admin.passwd = 4ACFE3202A5FF5CF467898FC58AAB1D615029441 默认密码 123456 # admin auto register #canal.admin.register.auto = true #canal.admin.register.cluster = #canal.admin.register.name =
4.2 canal_manager数据库构建
canal集群管理站点运行依赖数据库,所以需要新建一个管理数据库,数据库表创建语句位于canal.admin-1.1.6\conf\canal_manager.sql
4.3 编辑application.yml
server: port: 8089 spring: jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 spring.datasource: address: canal_manager数据库地址 database: canal_manager username: 数据库访问用户名 password:数据库访问密码
driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://${spring.datasource.address}/${spring.datasource.database}?useUnicode=true&characterEncoding=UTF-8&useSSL=false hikari: maximum-pool-size: 30 minimum-idle: 1 canal: adminUser: admin adminPasswd: admin
标黄处需要修改.
5、分别启动canal和canal-admin 启动文件位于bin文件夹下的start.bat
6、重置Canal消费position
修改\conf\example 下的meta.dat,如下:
{
"clientDatas": [
{
"clientIdentity": {
"clientId": 666,
"destination": "example",
"filter": "quzhou_baseasset.dh_log"
},
"cursor": {
"identity": {
"slaveId": -1,
"sourceAddress": {
"address": "102.2.12.3",
"port": 3306
}
},
"postion": {
"gtid": "",
"included": false,
"journalName": "binlog.000078",
"position": 380084023,
"serverId": 1,
"timestamp": 1661807567000
}
}
}
],
"destination": "example"
}
修改position节点下的timestamp或者journalName并指定position.