otter-manager,otter-node,zookeeper,aria2c都安装好之后需要进行数据库之间的同步配置
1.创建同步的源库和用户,目标库和用户
CREATE database source default character set utf8;
CREATE USER 'source'@'localhost' IDENTIFIED BY '123456';
GRANT all ON *.* TO 'source'@'localhost';
CREATE database target default character set utf8;
CREATE USER 'target'@'localhost' IDENTIFIED BY '123456';
GRANT all ON *.* TO 'target'@'localhost';
flush privileges;
2.修改对应的字符集
临时生效,直接登录数据进行设置即可
/*建立连接使用的编码*/
set character_set_connection=utf8;
/*数据库的编码*/
set character_set_database=utf8;
/*结果集的编码*/
set character_set_results=utf8;
/*数据库服务器的编码*/
set character_set_server=utf8;
set character_set_system=utf8;
set collation_connection=utf8;
set collation_database=utf8;
set collation_server=utf8;
永久生效,需要修改配置文件 my.cnf
[client] 下面加:default-character-set = utf8
[mysqld] 下面加:character_set_server = utf8
修改完配置之后重启msyql
查看对应的字符集:
show variables like '%character%';
3.数据源配置添加源库和目标库
源库和目标oracle库都需要添加到数据源中
配置管理->数据源配置->添加一个数据源
4.数据表配置
所有需要同步的表源端和目标端都需要添加,此支持正则表达式
5.canal配置
一般一个数据源对应一个canal。canal会伪装成源数据库的从库,从而拉取相应的BINLOG数据。一个canal只能被一个pipline使用,同一个数据源也可以配置多个canal。
位点自定义设置: canal默认是从当前时间点开始同步数据,历史数据是不会进行同步的,如果需要从历史时间点开始同步,则可以修改此选项(注意:源库必须存在该位点的binlog方可)
6.添加Channel
- 同步一致性. ==> 基于数据库反查(根据binlog反查数据库),基于当前变更(binlog数据)。针对数据库反查,在延迟比较大时比较有效,可将最新的版本快速同步到目标,但会对源库有压力.
- 同步模式. ==> 行模式,列模式。行模式特点:如果目标库不存在记录时,执行插入。列模式主要是变更哪个字段,只会单独修改该字段,在双A同步时,为减少数据冲突,建议选择列模式。
7.添加pipeline
注意:
select机器选择靠近源端数据库的node,可以选择多个做负载均衡或者备份用
load机器选择靠近目标端数据库服务器的node,可以选择多个,作为灾备用
选择的canal数据库要和同步表的数据库一致
负载均衡、传输模式等选择
支持DDL同步,选择否(mysql到oracle不支持DDL同步)
是否跳过DDL异常,选择是
batch支持,选择否
8.添加映射关系列表
选择新增的pipeline名称,进入映射关系配置
注意:Eventprocessor可对表映射做做预处理,如修改字段名称、修改主键字段、修改字段值、添加字段、过滤记录、过滤如删除操作的记录等。
选择下一步,进行include或者exclude字段映射,如果全部字段同步,则可直接点保存
保存后查看映射关系列表
9.开启mysql二进制日志同步
因为otter数据同步是依靠二进制日志文件进行同步的,所以要开启MySQL的二进制日志。
具体可以参考之前的博客,链接:https://blog.csdn.net/u014642915/article/details/96877299
10.进行验证
连接上分别用source和target用连接数据库
在source做删除,增加数据,在target用户上查看是否同步修改,如果有同步修改,则说明配置成功了!