canal的搭建很简单,基本就是解压一下就可以了。
详细的信息可以参见这个大神的博客http://blog.csdn.net/hackerwin7/article/details/37923607
Canal的搭建
1、准备:
github:https://github.com/alibaba/canal
2、canal概述:
canal是应阿里巴巴存在杭州和美国的双机房部署,存在跨机房同步的业务需求而提出的。
早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元。
3、部署canal:
3.1开启MySQL的binlog功能,并配置binlog模式为row。
在my.cnf 加入如下:
开启mysqllog-bin模式
log-bin = mysql-bin
选择row模式
binlog-format=Row
配置mysqlreplaction需要定义,不能和canal的slaveId重复
server-id=1
3.2在mysql中配置canal数据库管理用户,配置repication权限
创建mysql用户
CREATE USER canal IDENTIFIEDBY 'canal';
赋给用户查询,同步权限
GRANT SELECT,REPLICATIONSLAVE,REPLICATION CLIENT ON *.* TO 'canal'@'%';
刷新
FLUSH PRIVILEGES;
3.3下载canal并解压
下载canalhttps://github.com/alibaba/canal/releases
上传到192.168.100.57服务器上,解压到/home/canal中
3.4 修改配置文件
cd /home/conf 目录下
3.4.1 vi canal.properties 配置canal
更改以下两个地方(如果是集群模式需要把zookeeper配置进去)
canal.ip=
canal.port=
3.4.2 vi/example/instance.properties配置数据库(空白处无需设置)
## mysqlserverId
canal.instance.mysql.slaveId= 1234
//修改为自己需要监控的数据库地址信息
canal.instance.master.address= //数据的ip和端口
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=
//数据库的信息
canal.instance.dbUsername= //用户名
canal.instance.dbPassword= //密码
canal.instance.defaultDatabaseName= //默认的数据库名称
canal.instance.connectionCharset= //编码集
# tableregex
canal.instance.filter.regex= .*\\..*
# tableblack regex
canal.instance.filter.black.regex=
3.5 启动canal
cd bin目录下执行./start.sh
执行 ls查看文件发现会产生canal.pid文件代表服务已启动
3.6 查看日志文件
cd logs 目录下
有两个文件夹一个是canal,一个是example。有关canal的错误会在canal文件夹下输出,有关数据库链接的错误会在example下输出
说明:
canal的HA
canal的HA高可用是在canal上集成zookeeper,用zookeeper来协调管理canal的节点,当一个canal节点宕掉之后,另一台节点会自动将任务接过来,在一台canal节点运行的时候,其余的canal节点是处于standby状态,随时待命。