一、前提准备

1.安装包
本次使用的安装包为:canal.deployer-1.1.5 和 canal.adapter-1.1.5。
注意:1.1.5 之后的版本的JDK环境为11,1.1.5 可以使用jdk1.8.

二、启动deployer服务

2.1 配置文件 canal.properties

在这里插入图片描述

# tcp bind ip
canal.ip =
# register ip to zookeeper
canal.register.ip =
# 端口修改
canal.port = 11111 
canal.metrics.pull.port = 11112

在这里插入图片描述
高亮部分example可以设置多个,比如example1,example2,则需要创建对应的两个文件夹,并且每个文件夹下都有一个instance.properties文件。

2.2 instance.properties 配置文件修改

2.2.1 文件位置

修改文件位置

2.2.2 配置文件修改

在这里插入图片描述

# 主要修改代码
#数据库地址
canal.instance.master.address=127.0.0.1:3306
# 数据库用户名
canal.instance.dbUsername=canal
# 数据库密码
canal.instance.dbPassword=canal

2.3 启动

在这里插入图片描述

2.3.1 控制台效果

在这里插入图片描述

2.3.2 出现如下日志表示启动成功

在这里插入图片描述

三、启动adapter 服务

3.1 修改application.yml配置文件

在这里插入图片描述

#  srcDataSources:
#    defaultDS:
#      url: jdbc:mysql://127.0.0.1:3306/mytest?useUnicode=true
#      username: root
#      password: 121212
  canalAdapters:
  - instance: example # canal instance Name or mq topic name
    groups:
    - groupId: g1
      outerAdapters:
      - name: logger
#      - name: rdb
#        key: mysql1
#        properties:
#          jdbc.driverClassName: com.mysql.jdbc.Driver
#          jdbc.url: jdbc:mysql://127.0.0.1:3306/mytest2?useUnicode=true
#          jdbc.username: root
#          jdbc.password: 121212

本次为mysql间数据同步,主要涉及以上部分代码

3.2 在conf/tablestore路径下创建.yml格式的文件并配置。(tablestore 和application.yml 的 canal.conf.canalAdapters.instance.groups.groupId.outerAdapters.name 一致)

在这里插入图片描述

在这里插入图片描述

本次默认使用rdb
在这里插入图片描述

注解引用网址
在这里插入图片描述
在这里插入图片描述

自动映射

3.3 通过bin路径下的脚本启动项目。

3.3.1 文件位置

在这里插入图片描述

3.3.2 启动效果

在这里插入图片描述

四、全量同步mysql数据

命令格式

curl "hostip:port/etl/type/key/task" -X POST

命令格式详解

type值为yml文件所在文件夹名称,key值为 yml 文件中 outerAdapterKey
在这里插入图片描述

配置项描述示例
type下游数据库类型,必须设置为tablestore。rdb
key使用的Adapter标识,必须与application.yml中canal.conf: canalAdapters: groups: outerAdapters下key值相同。mysql1
task任务配置文件的名称mytest_user.yml

示列

在这里插入图片描述

# 命令
http://localhost:8081/etl/rdb/mysql1/mytest_user.yml

返回结果如下表示同步成功

在这里插入图片描述

五、 报错

在这里插入图片描述

原因:路径问题

解决办法:修改文件位置,移除中文路径。文件名称存在括号也会报错。

GitHub 加速计划 / ca / canal
28.21 K
7.57 K
下载
alibaba/canal: Canal 是由阿里巴巴开源的分布式数据库同步系统,主要用于实现MySQL数据库的日志解析和实时增量数据订阅与消费,广泛应用于数据库变更消息的捕获、数据迁移、缓存更新等场景。
最近提交(Master分支:2 个月前 )
1e5b8a20 - 2 个月前
ff82fd65 2 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐