MySQL同步工具otter的使用介绍(一) - otter简介

一、摘要

《MySQL同步工具otter的使用介绍》将分为五篇文章详细介绍如何使用otter来进行MySQL的数据同步。

本文将简单介绍otter的背景和原理。

otter项目github地址:GitHub - alibaba/otter: 阿里巴巴分布式数据库同步系统(解决中美异地机房)

 

二、otter项目背景

  阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求,同时为了提升用户体验,整个机房的架构为双A,两边均可写,由此诞生了otter这样一个产品。

  otter第一版本可追溯到04~05年,此次外部开源的版本为第4版,开发时间从2011年7月份一直持续到现在,目前阿里巴巴B2B内部的本地/异地机房的同步需求基本全上了otte4。

目前同步规模:

  1. 同步数据量6亿
  2. 文件同步1.5TB(2000w张图片)
  3. 涉及200+个数据库实例之间的同步
  4. 80+台机器的集群规模

 

三、otter同步简介

(1)工作原理架构图

 

描述:

1. 基于Canal开源产品,获取数据库增量日志数据。 

2. 典型管理系统架构,manager(web管理)+node(工作节点)

    a. manager运行时推送同步配置到node节点

    b. node节点将同步状态反馈到manager上

3. 基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作.

 

(2)基于otter可以实现的功能

1.基于binlog位点信息实现源端MySQL-目标端MySQL的准实时同步(测试下来,在没有大事务的或者慢SQL的情况下,同步延迟在秒级)

2.可以配置正则表达式,实现库到库的同步,表到表的同步,同步颗粒度可以精确到某一列

3.可以通过正则表达式或者配置canal过滤掉不需要同步的表

4.可以正常同步DDL语句,并且跳过DDL异常

5.可以进行表的批量配置,后续会介绍到如何批量配置表的同步

6.可以在配置中嵌入代码,实现简单的etl

7.otter社区版支持源端MySQL-目标端Oracle的同步

8.MySQL双向同步(此功能仍待验证,生产环境不建议使用双向同步)

 

(3)otter相较于传统的MySQL主备模式的优点

1.灵活程度更高,可以选择同步哪些库,哪些表,过滤哪些表,甚至可以选择同步哪些列

2.图形化界面配置,可以清楚看到同步延时,同步状态,数据变化情况,便于运维和分析问题

3.分布式同步工具,可以配置多个node,提高同步效率

4.支持代码内嵌,可以通过代码的方式,实现etl过程

5.支持Oracle与MySQL之间的同步

 

posted @ 2021-07-29 11:32  蔡二傻  阅读(3168)  评论(0编辑  收藏  举报