Otter单向同步配置

Otter同步配置

标签: Otter


配置视频
本文配置的同步方式为单向同步,其他同步方式配置请参考官方文档

开启mysql日志

Otter要求源数据库开启mysql的binlog写入功能,建议配置binlog模式为row。
查询mysql的binlog模式:show global variables like '%binlog_format%';
编辑/etc/my.conf,修改参数如下:

[myslqd]
log-bin=mysql-bin #添加这一行就ok
binlog_format=ROW #选择row模式
server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复

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;
针对已有的账户可直接通过grant添加权限

数据源配置

进入配置管理->数据源配置,添加数据源。源数据库和目标数据库不同时需要都添加进来。

添加数据源

canal配置

进入配置管理->canal配置,添加canal

这里写图片描述

数据表配置

进入配置管理->数据表配置,添加数据表。需要同时添加源数据表和目标数据表。

这里写图片描述

单向同步配置

channel配置

进入同步管理,添加channel

这里写图片描述

添加pipline

进入同步管理,找到上一步创建的channel,点击Channel名字,进入pipline配置

channel列表

添加pipline

添加pipline

高级设置中可以开启和关闭DDL,默认为开启,DDL异常建议跳过
DDL仅支持相同库名的DDL同步,不同库名配置时会出现异常
DDL配置

添加映射关系

进入pipline配置,找到上一步创建的pipline,点击pipline名字,进入映射关系列表

pipline列表

添加映射关系

添加映射关系

点击下一步,可以配置源表和目标表之间列的映射关系,如果表字段名完全相同,可以直接点击保存。

启用channel

回到channel列表,找到刚刚配置完成的channel,点击启用。

启用channel

启用后运行状态变为运行。

启用成功

测试数据

至此单项同步的配置已经完成,可以对源数据表进行数据操作,测试同步结果。

双向同步

配置channel

使用单向同步时配置的channel,开启channel的数据一致性
channel数据一致性

配置pipline

新增一个canal,同一数据库可以配置多个canal
在单向同步时配置的channel中新增一个pipline
原有的pipline配置为主节点,可以开启DDL,新增的pipline配置为子节点,关闭DDL,DDL异常都选择跳过
双向pipline

映射配置

配置方法相同,和上一步配置的映射源表和目标表相反即可

出现的问题

2017-10-26 11:21:20.090 [destination = 192.168.5.127 , address = /192.168.5.127:3306 , EventParser] ERROR c.a.otter.canal.parse.inbound.mysql.MysqlEventParser - dump address /192.168.5.127:3306 has an error, retrying. caused by 
java.lang.NullPointerException: null
    at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.loadBinlogChecksum(MysqlConnection.java:284) ~[canal.parse-1.0.23.jar:na]
    at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.dump(MysqlConnection.java:113) ~[canal.parse-1.0.23.jar:na]
    at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:209) ~[canal.parse-1.0.23.jar:na]
    at java.lang.Thread.run(Thread.java:745) [na:1.7.0_80]

参考这个问题数据不能同步,把版本换成的v4.2.12,或等新的4.2.15版本

猜你喜欢

转载自blog.csdn.net/zh350229319/article/details/78351235