前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >canal-基于mysql的增量数据同步安装配置

canal-基于mysql的增量数据同步安装配置

作者头像
zhangdd
发布2018-08-01 14:25:19
2.7K0
发布2018-08-01 14:25:19
举报
文章被收录于专栏:zhangdd.comzhangdd.com

canal-基于mysql的增量数据同步安装配置

早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元。 ps. 目前内部版本已经支持mysql和oracle部分版本的日志解析,当前的canal开源版本支持5.7及以下的版本(阿里内部mysql 5.7.13, 5.6.10, mysql 5.5.18和5.1.40/48)

mysql主从同步工作原理

从上层来看,复制分成三步: master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events,可以通过show binlog events进行查看); slave将master的binary log events拷贝到它的中继日志(relay log); slave重做中继日志中的事件,将改变反映它自己的数据。

canal的工作原理:

原理相对比较简单: canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议 mysql master收到dump请求,开始推送binary log给slave(也就是canal) canal解析binary log对象(原始为byte流)

canal安装

1.下载解压很据自己需求选择版本

地址:https://github.com/alibaba/canal/releases

2.创建mysql的canal用户

mysql> CREATE USER ‘canal’@’%’ IDENTIFIED BY ‘canal’;

Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO ‘canal’@’%’ WITH GRANT OPTION;

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

3、修改canal配置文件

root@mysql04 ~]# vi  canal/conf/example/instance.properties ################################################# ## mysql serverId canal.instance.mysql.slaveId=0 # position info canal.instance.master.address=127.0.0.1:3306     ##这里改成自己的数据库地址,本机可以不动 canal.instance.master.journal.name= canal.instance.master.position= canal.instance.master.timestamp=

# table meta tsdb info canal.instance.tsdb.enable=true canal.instance.tsdb.dir=${canal.file.data.dir:../conf}/${canal.instance.destination:} canal.instance.tsdb.url=jdbc:h2:${canal.instance.tsdb.dir}/h2;CACHE_SIZE=1000;MODE=MYSQL; #canal.instance.tsdb.url=jdbc:mysql://127.0.0.1:3306/canal_tsdb canal.instance.tsdb.dbUsername=canal canal.instance.tsdb.dbPassword=canal

#canal.instance.standby.address = #canal.instance.standby.journal.name = #canal.instance.standby.position = #canal.instance.standby.timestamp = # username/password canal.instance.dbUsername=canal    ###改成自己数据库用户 canal.instance.dbPassword=canal    ###改成自己数据库密码 canal.instance.defaultDatabaseName=databasename ###改成自己数据库 canal.instance.connectionCharset=UTF-8   ###改成自己数据库编码格式 # table regex canal.instance.filter.regex=.*\\..* # table black regex canal.instance.filter.black.regex= #################################################

4.启动关闭canal

/自己安装路径/canal/bin/startup.sh

/自己安装路径canal/bin/stop.sh

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • mysql主从同步工作原理
    • canal的工作原理:
    • canal安装
    相关产品与服务
    云数据库 SQL Server
    腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档