`
agapple
  • 浏览: 1596012 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Canal QuickStart

阅读更多

Canal介绍

      基于mysql数据库binlog的增量订阅&消费

 

QuickStart

几点说明:(mysql初始化)

a.  canal的原理是基于mysql binlog技术,所以这里一定需要开启mysql的binlog写入功能,并且配置binlog模式为row. 

[mysqld]
log-bin=mysql-bin #添加这一行就ok
binlog-format=ROW #选择row模式
server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复
b.  canal的原理是模拟自己为mysql slave,所以这里一定需要做为mysql slave的相关权限.
CREATE USER canal IDENTIFIED BY 'canal';  
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;

针对已有的账户可通过grants查询权限:

 

show grants for 'canal'

 

启动步骤:

1.  下载canal

下载部署包

wget http://canal4mysql.googlecode.com/files/canal.deployer-1.0.0.tar.gz

or 

自己编译 

git clone git@github.com:otter-projects/canal.git
cd canal; 
mvn clean install -Dmaven.test.skip -Denv=release

    编译完成后,会在根目录下产生target/canal.deployer-$version.tar.gz 

 

2.  解压缩

mkdir /tmp/canal
tar zxvf canal.deployer-1.0.0.tar.gz  -C /tmp/canal

   

   解压完成后,进入/tmp/canal目录,可以看到如下结构:

 

drwxr-xr-x 2 jianghang jianghang  136 2013-02-05 21:51 bin
drwxr-xr-x 4 jianghang jianghang  160 2013-02-05 21:51 conf
drwxr-xr-x 2 jianghang jianghang 1.3K 2013-02-05 21:51 lib
drwxr-xr-x 2 jianghang jianghang   48 2013-02-05 21:29 logs

 

3.  配置修改

 

公用参数:   

vi conf/canal.properties
#################################################
#########               common argument         ############# 
#################################################
canal.id= 1
canal.address=
canal.port= 11111
canal.zkServers=
# flush data to zk
canal.zookeeper.flush.period = 1000
## memory store RingBuffer size, should be Math.pow(2,n)
canal.instance.memory.buffer.size = 32768

## detecing config
canal.instance.detecting.enable = false
canal.instance.detecting.sql = insert into retl.xdual values(1,now()) on duplicate key update x=now()
canal.instance.detecting.interval.time = 3 
canal.instance.detecting.retry.threshold = 3 
canal.instance.detecting.heartbeatHaEnable = false

# support maximum transaction size, more than the size of the transaction will be cut into multiple transactions delivery
canal.instance.transactionn.size =  1024

# network config
canal.instance.network.receiveBufferSize = 16384
canal.instance.network.sendBufferSize = 16384
canal.instance.network.soTimeout = 30

#################################################
#########               destinations            ############# 
#################################################
canal.destinations= example

canal.instance.global.mode = spring 
canal.instance.global.lazy = true  ##修改为false,代表立马启动
#canal.instance.global.manager.address = 127.0.0.1:1099
canal.instance.global.spring.xml = classpath:spring/memory-instance.xml
#canal.instance.global.spring.xml = classpath:spring/default-instance.xml

 

应用参数:

vi conf/example/instance.properties
#################################################
## mysql serverId
canal.instance.mysql.slaveId = 1234

# position info
canal.instance.master.address = 127.0.0.1:3306 #改成自己的数据库地址
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 = retl  #改成自己的数据库信息
canal.instance.dbPassword = retl  #改成自己的数据库信息
canal.instance.defaultDatabaseName =   #改成自己的数据库信息
canal.instance.connectionCharsetNumber = 33  #改成自己的数据库信息
canal.instance.connectionCharset = UTF-8  #改成自己的数据库信息

# table regex
canal.instance.filter.regex = .*\\..*

#################################################

 

 

 说明:

  • canal.instance.connectionCharset 代表数据库的编码方式对应到java中的编码类型,比如UTF-8,GBK , ISO-8859-1
  • canal.instance.connectionCharsetNumber 代表数据库的编码方式对应mysql中的唯一id,详细的映射关系可查看:com.mysql.jdbc.CharsetMapping.INDEX_TO_CHARSET
    针对常见的编码:
    utf-8  <=>  33
    gb2312 <=> 24
    gbk <=> 28

4.   准备启动

 

sh bin/startup.sh

 

5.  查看日志

vi logs/canal/canal.log
2013-02-05 22:45:27.967 [main] INFO  com.alibaba.otter.canal.deployer.CanalLauncher - ## start the canal server.
2013-02-05 22:45:28.113 [main] INFO  com.alibaba.otter.canal.deployer.CanalController - ## start the canal server[10.1.29.120:11111]
2013-02-05 22:45:28.210 [main] INFO  com.alibaba.otter.canal.deployer.CanalLauncher - ## the canal server is running now ......

     

    具体instance的日志:

vi logs/example/example.log
2013-02-05 22:50:45.636 [main] INFO  c.a.o.c.i.spring.support.PropertyPlaceholderConfigurer - Loading properties file from class path resource [canal.properties]
2013-02-05 22:50:45.641 [main] INFO  c.a.o.c.i.spring.support.PropertyPlaceholderConfigurer - Loading properties file from class path resource [example/instance.properties]
2013-02-05 22:50:45.803 [main] INFO  c.a.otter.canal.instance.spring.CanalInstanceWithSpring - start CannalInstance for 1-example 
2013-02-05 22:50:45.810 [main] INFO  c.a.otter.canal.instance.spring.CanalInstanceWithSpring - start successful....

 

6.  关闭

sh bin/stop.sh

 

 

it's over. 

分享到:
评论

相关推荐

    canal客户端-canal.deployer-1.1.7-SNAPSHOT.tar.gz

    《深入理解Canal客户端:canal.deployer-1.1.7-SNAPSHOT.tar.gz剖析》 Canal,由阿里开源的一款高效、稳定的数据库增量日志订阅与消费组件,广泛应用于数据同步、实时数据接入等场景。在本篇文章中,我们将深入探讨...

    Linux下Canal安装和使用.doc

    Linux 下 Canal 安装和使用 Canal 是一个基于 MySQL 数据库增量日志解析的工具,提供增量数据订阅和消费。 Canal 的主要用途包括数据库镜像、数据库实时备份、索引构建和实时维护、业务 Cache 刷新、带业务逻辑的...

    canal.1.1.5包

    【标题】"canal.1.1.5包"指的是Canal项目的1.1.5版本的组件集合。Canal是阿里巴巴开源的一款基于MySQL数据库的数据变更发布与订阅系统,它能够实时捕获并同步数据库中的数据变化,常用于构建数据一致性、实时数据...

    canal.deployer-1.1.6

    《Canal Deployer 1.1.6:MySQL数据同步利器详解》 Canal Deployer是阿里巴巴开源的数据同步工具Canal的重要组成部分,主要用于部署和管理Canal实例。在1.1.6版本中,它提供了稳定高效的数据变更捕获与传输服务,...

    canal-canal-1.1.5-alpha-2.zip ;canal-server、adapter、admin

    canal-server(canal-deploy):可以直接监听MySQL的binlog,把自己伪装成MySQL的从库,只负责接收数据,并不做处理。 canal-adapter:相当于canal的客户端,会从canal-server中获取数据,然后对数据进行同步,可以...

    阿里canal组件:canal.deployer-1.1.7-SNAPSHOT.tar.gz

    阿里Canal是一款由阿里巴巴开源的、轻量级的数据变更订阅与推送组件,主要用来实现数据库的增量数据同步。在IT行业中,特别是在互联网公司,数据一致性是至关重要的,而Canal就是为了满足这种需求而诞生的。它能有效...

    canal 1.1.4 常用工具包

    canal.deployer-1.1.4.tar.gz canal.admin-1.1.4.tar.gz canal.adapter-1.1.4.tar.gz canal.example-1.1.4.tar.gz canal-canal-1.1.4.zip canal 全量工具包集合 https://juejin.cn/post/6864585112994971662

    canal-1.1.6

    【标题】"Canal-1.1.6" 是一个重要的数据库同步工具,主要用于实现MySQL数据的实时增量复制。在IT行业中,数据同步是确保多系统间数据一致性和实时性的关键环节,尤其在分布式系统、大数据处理和云计算环境中。Canal...

    springboot整合canal

    SpringBoot整合Canal是将阿里巴巴开源的数据库实时变更数据订阅与推送组件Canal与SpringBoot框架结合,以实现高效的数据同步。Canal主要用于数据库的实时增量数据同步,它能够监听MySQL数据库的binlog事件,当数据库...

    canal.adapter-1.1.6.zip

    【标题】"canal.adapter-1.1.6.zip" 提供的是Canal适配器的1.1.6版本,这是一个与数据库变更日志相关的软件组件。 【描述】"canal.adapter-1.1.6.zip" 指出这个压缩包包含的是Canal适配器的特定版本1.1.6,它是一个...

    canal-1.1.6-SNAPSHOT.rar

    【标题】"canal-1.1.6-SNAPSHOT.rar" 提供的是一个名为 Canal 的数据同步工具的特定版本,即 1.1.6-SNAPSHOT 版本。这个压缩包是针对 Java 开发环境,特别是 JDK 17 的安装文件。这意味着在使用前,你需要确保你的...

    canal.deployer-1.1.6.tar.gz

    《Canal Deployer 1.1.6:MySQL 数据库实时同步工具详解》 Canal Deployer 是阿里巴巴开源的一款高效、稳定、轻量级的 MySQL 数据库增量日志解析组件,其主要功能是实现 MySQL 数据库到其他系统(如 Elasticsearch...

    canal实现mysql到ES数据实时同步

    Canal包含三个主要组件:Canal Server、Canal Client和Canal Adapter。Canal Server负责监听MySQL的Binlog事件,并将这些事件转化为结构化的数据。Canal Client可以订阅并消费这些数据,而Canal Adapter则扮演着数据...

    canal-canal-1.0.22_源码

    【canal-canal-1.0.22_源码】是阿里巴巴开源的数据库实时增量数据订阅与同步工具,主要用于实现MySQL到其他数据库或者数据存储系统的实时数据迁移、同步,常用于构建数据仓库、日志收集等场景。Canal的核心功能是...

    canal.adapter-1.1.4.tar.gz

    《Canal Deployer 1.1.4:MySQL数据库监听利器》 Canal Deployer 是阿里巴巴开源的一个数据库增量日志订阅与消费组件,主要用于数据库的实时数据同步。在这个场景下,`canal.deployer-1.1.4.tar.gz` 文件扮演了关键...

    canal.adapter-1.1.4.zip

    【标题】"Canal Adapter 1.1.4版本" Canal是阿里巴巴开源的一个数据库增量日志订阅与消费组件,主要用于实现数据库的实时数据同步。Canal Adapter是其配套的适配器模块,用于将Canal捕获到的数据库变更事件转化为...

    支持mysql5.6.19的canal版本

    MySQL的Canal是一款开源的数据库实时同步工具,它主要用于数据复制和数据变更事件的捕获。在本场景中,我们关注的是Canal与特定MySQL版本——5.6.19的兼容性问题。通常,数据库版本升级或降级可能会导致与现有同步...

    canal-1.1.5 全套

    包含canal全套资源包含以下 canal.adapter-1.1.5.tar.gz canal.admin-1.1.5.tar.gz canal.deployer-1.1.5.tar.gz canal.example-1.1.5.tar.gz

    canal-1.1.5.zip

    《阿里巴巴开源项目Canal详解与应用》 Canal,由阿里巴巴开源的一款高性能、轻量级的MySQL数据库实时增量数据订阅和消费组件,主要用于实现数据库的数据变更实时同步到其他系统,如大数据处理、缓存更新等场景。在...

    canal安装包免费下载.mysql同步ES工具

    【标题】"Canal安装包免费下载:MySQL同步ES工具" 【描述】"这款工具无需复杂的配置,只需在服务器上解压即可使用,对于Windows用户同样便捷,无需积分即可获取。" 【知识点详解】 1. **Canal**: Canal是阿里...

Global site tag (gtag.js) - Google Analytics