canal搭建及消费日志过程中的遇到的问题《亲测版》

时间:2024-04-07 14:09:33

一、部署canal

3.1开启MySQL的binlog功能,并配置binlog模式为row。

通过set global  * = *, 立即生效,重启后重新读取配置文件my.cnf  ,想永久生效记得修改配置文件

log-bin = mysql-bin

binlog-format=Row

server-id=1(和canal的slaveId不重复即可,canal默认1234,一般不用修改

3.2在mysql中配置canal数据库管理用户,配置repication权限

创建mysql用户(一般的账号都有这个权限,注意一个实例下面有多个实例,

你的账号只有A库权限,你只能读取A库的binlog,要在配置中过滤,否则在消费日志中会出现异常

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配置数据库(为什么是example,因为一个CANAL可以管理多个数据库,一个数据源一个文件夹(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= .*\\..*(这个配置可能不会生效,在client端进行过滤

# 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下输出

说明:

 canalHA

canalHA高可用是在canal上集成zookeeper,用zookeeper来协调管理canal的节点,当一个canal节点宕掉之后,另一台节点会自动将任务接过来,在一台canal节点运行的时候,其余的canal节点是处于standby状态,随时待命。

client读取binlog ,参见canal官网,

https://github.com/alibaba/canal/wiki/ClientExample

 注意

canal搭建及消费日志过程中的遇到的问题《亲测版》应该是<>,

canal搭建及消费日志过程中的遇到的问题《亲测版》

遇到的问题,canal消费日志的速度是不是有点慢,binlog已经删除,还没消费完,造成日志定位错误;