mysql otter 数据同步_MySQL数据同步之otter

article/2025/10/20 12:44:59

一、otter介绍

基于日志数据,用于MySQL或者ORACLE之间准实时同步数据。

用途:

mysql/oracle互相同步

中间表/行记录同步

二、原理及架构图

otter整体模块

manager (提供web页面进行同步管理)

arbitrate (分布式调度,可跨IDC机房)

node (同步过程setl)

canal / eromanga (同步数据来源)

大集群化部署

1个manager集群+ 多个IDC机房node组成

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

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

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

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

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

4.目前支持MySQL-->MySQL  MySQL-->ORACLE等异库之间同步

三、需要安装包

https://github.com/alibaba/otter/releases

manager.deployer-4.2.18.tar.gz

node.deployer-4.2.18.tar.gz

(安装时候可能需要安装下载工具,下载后编译安装https://liquidtelecom.dl.sourceforge.net/project/aria2/stable/aria2-1.19.0/aria2-1.19.0.tar.gz)

canal.deployer-1.1.4.tar.gz

四、安装简要步骤

manager安装

1.otter manager依赖于mysql进行配置信息的存储,所以需要预先安装mysql,并初始化otter manager的系统表结构

a. 安装mysql,这里不展开,网上一搜一大把

b. 初始化otter manager系统表:

2. 整个otter架构依赖了zookeeper进行多节点调度,所以需要预先安装zookeeper

a. manager需要在otter.properties中指定一个就近的zookeeper集群机器

## otter manager domain name #修改为正确访问ip,生成URL使用

otter.domainName = 127.0.0.1

## otter manager http portotter.port = 8082 #按需调整默认8080

## jetty web config xml otter.jetty = jetty.xml

otter manager database config ,修改为正确数据库信息

otter.database.driver.class.name = com.mysql.jdbc.Driver

otter.database.driver.url = jdbc:mysql://127.0.01:3306/ottermanager

otter.database.driver.username = root

otter.database.driver.password = Dr@.1214

otter.zookeeper.cluster.default = 127.0.0.1:2181

访问:

c2f8f414d2704ae0f9cfd497dae66e86.png

node安装

具体安装详见:https://github.com/alibaba/otter/wiki/Node_Quickstart

1. otter node会受otter manager进行管理,所以需要预先安装otter manager

2. 完成manager安装后,需要在manager页面为node定义配置信息,并生一个唯一id.

a. nid配置(将环境准备中添加机器后获取到的序号,保存到conf目录下的nid文件,比如我添加的机器对应序号为6)

3.node节点进行跨机房传输时,会使用到HTTP多线程传输技术,目前主要依赖了aria2c做为其下载客户端,后续会推出java版本.

a. aria2 官方首页:http://aria2.sourceforge.net/

b. 下载页面:http://sourceforge.net/projects/aria2/files/stable/

cancal安装

主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。

canal 作为MySQL binlog增量获取和解析工具,可将变更记录投递到MQ系统中,比如Kafka/RocketMQ。也可以直接把数据发送到es hbase等

具体参考:

https://github.com/alibaba/canal

我们配置一个同步任务:

操作步骤: 1.  添加数据库

a. 源库 jdbc:mysql://localhost:3306

b. 目标库 jdbc:mysql://localhost:3370

c45e792110269874ee81f20532d27bae.png

2.  添加channel

d05075d2a78ba0bc99cf2a9ded556d8c.png

说明:

a. 同步一致性

基于数据库反查 (简单点说,就是强制反查数据库,从binlog中拿到pk,直接反查对应数据库记录进行同步,回退到几天前binlog进行消费时避免同步老版本的数据时可采用)

基于当前日志变更 (基于binlog/redolog解析出来的字段变更值进行同步,不做数据库反查,推荐使用)

b. 同步模式

行模式 (兼容otter3的处理方案,改变记录中的任何一个字段,触发整行记录的数据同步,在目标库执行merge sql)

列模式 (基于log中的具体变更字段,按需同步)

c. 特殊组合:(同样支持)

基于数据库反查+列模式

基于当前日志变更+行模式

3.  添加同步表信息

a. 源数据表 demo.t_yq

b. 目标数据表 demo_3370.t_yq

4. 添加pipeline

a. 选择node节点

b. 选择canal

5. 添加同步映射规则

a. 定义源表和目标表的同步关系

98d50b008221aaf81252cc3a48527892.png

6. 启动

4602deb469ddd7a8bbf74e33597e70d2.png

7. 测试数据

源端插入数据

简单的介绍了otter使用,下期我们在看下双向同步以及canal同步数据到es


http://chatgpt.dhexx.cn/article/H30xnRs9.shtml

相关文章

Otter简介

原文地址:http://m635674608.iteye.com/blog/2314908 Otter它是一个数据同步解决方案,可以解决本地跨网络跨机房跨地域的数据同步问题,并且拥有可观的效率,web管理工具等特点,而且背景也很优秀,据说阿里B2B内部的本地/异地机房的同步需求基本全上了 otte…

Canal和Otter

问题一: 跨公网部署Otter 参考架构图 解析 ​ a. 数据涉及网络传输,S/E/T/L几个阶段会分散在2个或者更多Node节点上,多个Node之间通过zookeeper进行协同工作 (一般是Select和Extract在一个机房的Node,Transform/Load落在另一个机房的Node&a…

otter学习(一)——otter原理

1.otter原理: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统 原理描述: 1. 基于Canal开源产品,获取数据库增量日志数据。 2. 典型管理系统架构,manager(web管理…

otter数据同步

一、Otter目前支持了什么 1. 单向同步, mysql/oracle互相同步 2. 双向同步,无冲突变更 3. 文件同步,本地/aranda文件 4. 双A同步,冲突检测&冲突补救 5. 数据迁移,中间表/行记录同步 导历史表还需要程序代码实现吗&…

数据同步 之 Otter

一、Otter 语言:java 定位:基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库,一个分布式数据库同步系统。 1.工作原理: 2.原理描述 1. 基于Canal开源产品,获取数据库增量日志…

otter:分布式数据库同步系统

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

Otter 下载安装

简介 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统。 原理 1. 基于Canal开源产品,获取数据库增量日志数据。 什么是Canal, 请点击 2. 典型管理系统架构,manager(web管理)node(工…

otter使用手册

目录 1.机器管理 1.1 zookeeper管理 1.2 Node管理 2.配置管理 2.1数据源配置 2.2数据表配置(添加数据库表) 2.3 Canal配置(添加Canal) 3.同步管理 3.1 Channel管理 3.2 Pipeline管理 1.机器管理 1.1 zookeeper管理 添加z…

Otter 双向同步mysql

一、Otter目前支持了什么 1. 单向同步, mysql/oracle互相同步 2. 双向同步,无冲突变更 3. 文件同步,本地/aranda文件 4. 双A同步,冲突检测&冲突补救 5. 数据迁移,中间表/行记录同步 实际测试中,otter的…

Otter安装说明

Otter安装说明 Mysql安装(如果已安装则无需再安装):【忽略安装Mysql】 安装依赖 yum -y install perl perl-devel autoconf #下载Mysql包 https://github.com/alibaba/otter/releases【Otter最新版本下载】 wget https://dev.mysql.com/g…

otter mysql hbase_otter自定义扩展

otter自定义扩展 otter支持数据处理自定义过程。 Extract模块: EventProcessor : 自定义数据处理,可以改变一条变更数据的任意内容 FileResolver : 解决数据和文件的关联关系 目前两者都只支持java语言编写,但都支持运行时动态编译&lib包…

otter搭建

一、安装zookeeper的单机版 apache-zookeeper-3.6.1-bin.tar.gz 如果下载的是3.5及以后的,需要下载包名带有-bin的版本,从3.5.5开始,带有bin的包才是解压以后可以直接使用的里面有编译后二进制的包,而之前的普通的tar.gz里面只是…

otter安装

译意: 水獭,数据搬运工 语言: 纯java开发 定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统 otter的环境需要:mysql,jdk&#x…

Otter 安装部署维护

介绍 淘宝开源的产品,基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库,一个分布式数据库同步系统。 目前同步规模: 同步数据量6亿 文件同步1.5TB(2000w张图片) 涉及200个数据库实例之间的同步 80台机器…

Otter配置说明

Otter配置说明 标签: Otter 下载 最新版Otter下载地址 CSDN下载地址 需要下载manager.deployer-4.2.13.tar.gz,node.deployer-4.2.13.tar.gz和Source code (zip) 需要安装zookeeper和jdk支持,canal已经内置,不需要安装 manage…

mysql otter_MySQL数据库实现远程同步的工具alibaba otter

MySQL数据库实现远程同步的工具alibaba otter 发布时间:2020-06-03 15:46:57 来源:51CTO 阅读:291 作者:三月 本篇文章给大家主要讲的是关于MySQL数据库实现远程同步的工具alibaba otter的内容,感兴趣的话就一起来看看…

Otter源码深入详解(三)

分析Node的代码前,需要理解Node的工作机制,需要先了解其工作原理: https://github.com/alibaba/otter/wiki/Otter调度模型 这里用到了SEDA模型,SEDA模型这里有偏文章介绍的很好: https://www.jianshu.com/p/e184fdc0ad…

otter mysql教学视频_3.Otter快速上手

QuickStart 1.几点说明 有一点特别注意:目前canal支持mixed,row,statement多种日志协议的解析,但配合otter进行数据库同步,目前仅支持row协议的同步,使用时需要注意. 环境准备 操作系统 a. otter为纯java编写,windows/…

通过docker构建otter

本文是通过docker构建otter环境与mysql环境 一、使用docker构建otter docker pull canal/otter-all curl -fsSL https://raw.githubusercontent.com/alibaba/otter/master/docker/run.sh | bash 访问otter:http://192.168.102.212:8080 账号密码默认是admin/adm…

Otter详解

otter girthub链接: https://github.com/alibaba/otter 有兴趣的同学可以移步笔者的个人博客 更多博客 整体架构 子模块解释 zooKeeper 分布式一致性协调服务,主要用来调度配置好的node模块。 manager 管理中心,用来配置同步信息&#…