几点说明

otter依赖于canal提供数据库日志,针对mysql数据有一些要求,具体请查看: https://github.com/alibaba/canal/wiki/QuickStart

有一点特别注意:目前canal支持mixed,row,statement多种日志协议的解析,但配合otter进行数据库同步,目前仅支持row协议的同步,使用时需要注意.

环境准备

  1. 操作系统

    a. otter为纯java编写,windows/linux均可支持

    b. jdk建议使用1.6.25以上的版本,稳定可靠,目前阿里巴巴使用基本为此版本

  1. 整个otter同步由几部分组成,需要预先进行安装,后续会有专门的篇幅展开介绍
  • manager
  • node
  1. otter node依赖于zookeeper进行分布式调度,需要安装一个zookeeper节点或者集群.

    重要:考虑异地机房的地域性,node机器会优先选择就近的zookeeper节点进行访问,比如国际站会在杭州和美国各部署node,针对美国的node会选择美国的zookeeper进行访问,提升读效率. ps. 不同机房的zookeeper集群组成一个物理大集群,只不过是根据地域不同划分为不同逻辑集群,所有地域的node机器对zookeeper进行写操作都会发到一个地域的zookeeper进行paoxs算法仲裁.

    所以,manager启动完成后,需要首先定义不同机房的zookeeper机器集群。

  1. 比如:目前otter使用的zookeeper集群,在杭州会有3个机房,分别部署3+2+2台机器组成一个leader/follower集群,在美国一个机房部署2台机器,做为杭州机房zookeeperobserver(读镜像),(observer模式特点:读请求在自己本地,写请求代理到leader/follower上投票处理,然后异步接收leader的写结果反馈. )

observer配置文档: http://zookeeper.apache.org/doc/trunk/zookeeperObservers.html

说明:添加了zookeeper集群后,会在添加node和canal时自动出现在可选列表里。 这也是添加node和canal的一个前提

环境安装

Docker安装模式

1分钟快速 Docker QuickStart : Docker_Quickstart

手工安装模式

1. manager安装

Otter Manager QuickStart: Manager_Quickstart

2. node安装

Otter Node QuickStart : Node_Quickstart

网友分享

网友安装otter过程记录,供未接触java/mvn开发的运维人员使用 :http://blog.sina.com.cn/s/articlelist_1869333262_0_1.html

操作演示

演示视频(5分钟教你配置一个同步任务):请点击图片或者这里

ScreenShot

演示说明:

  1. 搭建一个数据库同步任务,源数据库ip为:10.20.144.25,目标数据库ip为:10.20.144.29. 源数据库已开启binlog,并且binlog_format为ROW.
  1. mysql> show variables like '%binlog_format%';
  2. +---------------+-------+
  3. | Variable_name | Value |
  4. +---------------+-------+
  5. | binlog_format | ROW |
  6. +---------------+-------+
  1. 数据同步精确到一张表进行测试,测试的表名为test.example,简单包含两个子段,测试过程中才创建.

  2. 配置完成后,手动在源库插入数据,然后快速在目标库进行查看数据,验证数据是否同步成功.


视频中的演示文本:

  1. CREATE TABLE `test`.`example` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `name` varchar(32) COLLATE utf8_bin DEFAULT NULL ,
  4. PRIMARY KEY (`ID`)
  5. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  6.  
  7. insert into test.example(id,name) values(null,'hello');
  8.  
  9. -----
  10. Otter QuickStart 如何配置一个任务
  11. -----
  12. 操作步骤:
  13. 1. 添加数据库
  14. a. 源库 jdbc:mysql://10.20.144.25:3306
  15. b. 目标库 jdbc:mysql://10.20.144.29:3306
  16. 2. 添加canal
  17. a. 提供数据库ip信息
  18. 3. 添加同步表信息
  19. a. 源数据表 test.example
  20. b. 目标数据表 test.example
  21. 4. 添加channel
  22. 5. 添加pipeline
  23. a. 选择node节点
  24. b. 选择canal
  25. 6. 添加同步映射规则
  26. a. 定义源表和目标表的同步关系
  27. 7. 启动
  28. 8. 测试数据

原文: https://github.com/alibaba/otter/wiki/QuickStart