otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。

1.背景和原理:

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

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

定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库,一个分布式数据库同步系统。

(1)MySQL主备复制原理

  • MySQL master 将数据变更写入二进制日志( binary log, 其中记录叫做二进制日志事件binary log events,可以通过 show binlog events 进行查看)
  • MySQL slave 将 master 的 binary log events 拷贝到它的中继日志(relay log)
  • MySQL slave 重放 relay log 中事件,将数据变更反映它自己的数据

(2)canal 工作原理

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第1张图片

  • canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议
  • MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )
  • canal 解析 binary log 对象(原始为 byte 流)

(3)otter原理

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第2张图片

1. 基于Canal开源产品,获取数据库增量日志数据。 什么是Canal, 请点击

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

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

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

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

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

2.本地环境:

win10;

mysql5.7.39;

manager.deployer-4.2.18;

node.deployer-4.2.18;

apache-zookeeper-3.8.1

3.otter下载;

本次版本是v4.2.18

Releases · alibaba/otter · GitHub

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第3张图片

4.zookeeper下载、安装、配置、运行;

Index of /dist/zookeeper/zookeeper-3.8.1https://archive.apache.org/dist/zookeeper/zookeeper-3.8.1/

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第4张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第5张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第6张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第7张图片

5.manager.deployer配置,启动;

otter所依赖的数据库:

https://raw.githubusercontent.com/alibaba/otter/master/manager/deployer/src/main/resources/sql/otter-manager-schema.sqlhttps://raw.githubusercontent.com/alibaba/otter/master/manager/deployer/src/main/resources/sql/otter-manager-schema.sql

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第8张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第9张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第10张图片

关闭服务,可以点击stop.sh;

登录:admin/admin

(如果是匿名登录,则只能查阅)

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第11张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第12张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第13张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第14张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第15张图片

6.node.deployer配置,启动;

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第16张图片

在conf路径下新建文件nid,内容是“1”;

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第17张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第18张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第19张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第20张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第21张图片otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第22张图片otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第23张图片

7.配置主库与从库;

数据库版本:Mysql5.7.x;

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第24张图片

只需源数据库开启binlog日志;

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第25张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第26张图片

id自增;

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第27张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第28张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第29张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第30张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第31张图片

从库同步需要主库提供账号密码, 且账号至少需要SELECT、REPLICATION CLIENT、REPLICATION SLAVE权限。

注意:REPLICATION SLAVE 可以在只读账号下分配,但权限级别需要是 global,不能仅指定某个数据库的只读。

账号test创建操作如下:(或者直接使用root账号,权限最大,无需配置)

CREATE USER test IDENTIFIED BY '123456';  

GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'test'@'%';

FLUSH PRIVILEGES;

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第32张图片

否则会报错:

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第33张图片

8.配置流程;

添加canal配置 → 添加数据源配置 → 添加数据表配置 → 添加channel → 添加Pipeline → 添加表映射关系 → 启动channel

(1)添加canal配置;

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第34张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第35张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第36张图片

(2)添加数据源配置;

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第37张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第38张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第39张图片

(3)添加数据表配置;

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第40张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第41张图片

错误原因有两个:

  • schema name:配置内容填写有误。

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第42张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第43张图片

主库的数据表配置如下:

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第44张图片

  • 数据库源的账号test的权限不够;

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第45张图片

解决方法如下:

CREATE USER test IDENTIFIED BY '123456';  

GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'test'@'%';

FLUSH PRIVILEGES;

然后用test账号配置数据源即可。

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第46张图片

(4)添加channel;

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第47张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第48张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第49张图片

(5)添加Pipeline;

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第50张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第51张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第52张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第53张图片

(6)添加表映射关系;

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第54张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第55张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第56张图片

如果两个表结构相同,直接保存;否则,需要配置字段映射关系,再点击下一步。

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第57张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第58张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第59张图片

(7)启动channel;

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第60张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第61张图片

(8)数据同步;

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第62张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第63张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第64张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第65张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第66张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第67张图片

如果channel已经有关联关系,必须先停止该channel,删除关联关系,再删除pipeline,最后才可以删除channel;

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第68张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第69张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第70张图片

或者执行编辑映射关系:

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第71张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第72张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第73张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第74张图片

 

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第75张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第76张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第77张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第78张图片

 otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第79张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第80张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第81张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第82张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第83张图片

otter、canal跨服务器数据同步解决方案详解,包括下载、安装、配置、应用过程解读。_第84张图片

目录

1.背景和原理:

(1)MySQL主备复制原理

(2)canal 工作原理

(3)otter原理

2.本地环境:

3.otter下载;

4.zookeeper下载、安装、配置、运行;

5.manager.deployer配置,启动;

6.node.deployer配置,启动;

7.配置主库与从库;

8.配置流程;

(1)添加canal配置;

(2)添加数据源配置;

(3)添加数据表配置;

(4)添加channel;

(5)添加Pipeline;

(6)添加表映射关系;

(7)启动channel;

(8)数据同步;


你可能感兴趣的:(数据同步,mysql,java,服务器,数据库,java)