otter及canal学习小结

otter及canal学习总结
1.同一台机器是否可以配置多个node?(OK,可以的,但是基本没必要,由于node本身可以配置给两个channel来使用,并且可以指定两个源的库同步,因此只

需要将单个node的能量释放即可,除非有必要保证两个node的升级不相互影响)


2.同一个源的不同的库同步是否可以使用同一node来同步?(OK,可以的,但是必须配置两个canal名字,且使用两个pipeline)


3.不同源的两个库是否可以用同一个node来同步?(可以的,但是必须建立两个canal)


4.一个pipeline的两张表可以是两个库吗?(可以的)可以是两个源吗?(不可以)


5.每个node的承载量是多大,支持多大的数据传输速度?(默认配置下,每秒钟10000条数据的内存占有大概200M左右)


6.配置canal的获取数据的自动主备机切换。由于载入是kafka,暂时不需要配置load的主备机切换。


7.使用otter之后,需要安装canal吗?(不需要,otter在node中内嵌canal,且通过界面启动多线程方式启动)



8.node必须在manager创建之后添加nid给node,并且,node配置必须连接manager。在node对应的otter.properties下配置。


9.manager 的安装必须建立两个库,一个otter库用来存储manager的业务配置,包括node等的运行日志等,一个binlog库,用来存储各系统的binlog日志,防

止扯皮,注意这个binlog的实时清除。


10.是否可以使用实时数据同步,需验证以下配置

查看binlog的format方式
(1)show variables like '%binlog_format%';

(2)开启mysql的binlog,在mysql的my.ini中配置

    log-bin=mysql-bin #添加这一行就ok

    binlog-format=ROW #选择row模式

    注意,需要重启mysql

(3)给canal的配置用户,开启binlog dump权限

    CREATE USER canal IDENTIFIED BY 'canal';  -- 如果存在用户,不需要创建。
    GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
    -- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
    FLUSH PRIVILEGES;


11.一个抽取任务的步骤严格如下,否则有出现无法点击启动的现象。

需要保证先添加了zk配置和node配置。

操作步骤:
1.  添加数据库
    a.  源库 jdbc:mysql://10.20.144.25:3306
    b.  目标库 jdbc:mysql://10.20.144.29:3306
2.  添加canal
    a.  提供数据库ip信息
3.  添加同步表信息
    a.  源数据表 test.example
    b.  目标数据表 test.example
4.  添加channel
5.  添加pipeline
    a.  选择node节点
    b.  选择canal
6.  添加同步映射规则
    a.  定义源表和目标表的同步关系
7.  启动
8.  测试数据


12.otter可以通过系统配置不同角色用户,来操作和查看系统。