otter数据订阅&消费 原创 曹之进 2019-01-17 18:00:09 博主文章分类:linux运维 ©著作权 文章标签 otter 数据库 增量 文章分类 运维 ©著作权归作者所有:来自51CTO博客作者曹之进的原创作品,请联系作者获取转载授权,否则将追究法律责任 介绍一款阿里巴巴的数据订阅&消费工具otter,这款产品当时用于解决阿里中美机房数据库实时同步问题。这里主要讲的是用otter增量同步生产数据库到测试环境数据库。otter的定位:基于数据库增量日志分析,实时同步数据为什么不用mysql自带的主从同步到测试?因为测试环境的特殊性,功能比较新,有些新表和新字段,直接从生产同步显然不能满足业务需求。otter就能很好解决这个问题,基于binlog分析只对生产有变更的数据进行同步,这样就不会覆盖测试环境已修改的数据,测试环境新增字段和表也不会被覆盖。otter的工作原理:1.基于canal,获取数据库增量日志,otter的核心组件也就是canal。2.典型的管理系统架构,manager(web管理)+node(节点) manager运行时推送同步配置到node节点 node节点将同步状态反馈到manager3.基于zookeeper,解决分布式状态调度,允许多node节点之间协同工作。otter能解决:异构库同步a. mysql -> mysql/oracle. (目前开源版本只支持mysql增量,目标库可以是mysql或者oracle,取决于canal的功能)单机房同步 (数据库之间RTT < 1ms)a. 数据库版本升级b. 数据表迁移c. 异步二级索引异地机房同步 (比如阿里巴巴国际站就是杭州和美国机房的数据库同步,RTT > 200ms,亮点)a. 机房容灾双向同步a. 避免回环算法 (通用的解决方案,支持大部分关系型数据库)b. 数据一致性算法 (保证双A机房模式下,数据保证最终一致性,亮点)文件同步a. 站点镜像 (进行数据复制的同时,复制关联的图片,比如复制产品数据,同时复制产品图片).实战:用途:生产增量同步指定表到测试环境,供测试工程师测试业务,属于单机房单项同步。前提,源库my.cnf开启,binlog,row模式:log_bin = mysql-bin #打开日志binlog_format = ROW #设置row模式的日志格式server-id = 2 #id不能重复在增量之前,做一次数据库的全量同步,可以用xtrbackup。1.用docker一键安装启动otter,自动处理映射,目录挂载等curl fsSL https://raw.githubusercontent.com/alibaba/otter/master/docker/run.sh | bash默认run.sh脚本会通过目录挂载的方式,将数据文件挂载到当前的data/目录下(包含zkData/mysql两个子目录),所以执行curl之前最好进入到一个自己的工作目录,比如cd otter2.访问otter的manager地址http://${host}:8080/3.配置3.1配置 数据源3.2进入配置管理-数据表配置3.3进入配置管理-canal配置3.4进入机器管理-node,为默认配置,otter启动会默认配好。3.5进入同步管理-channel3.6点击相应的channel名字,进入Pipeline配置,高级配置默认就行。3.7点击pipeline名字列表,进入配置映射关系3.8配置好后,则同步已开始注意:表必须设置主键才能做同步4.监控进入监控-日志管理,若有异常会有日志输出5.给出测试数据CREATE TABLE `test`.`example` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(32) COLLATE utf8_bin DEFAULT NULL , PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into test.example(id,name) values(null,'hello');6.效果源库中插入数据,目标库立马将新数据同步过来目标库必须先创建表结构才能同步数据更多精彩,关注公众号 赞 收藏 评论 分享 举报 上一篇:mysql的备份和恢复 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 复现查看docker run启动参数 复现查看Docker run启动参数 Docker 如何在Docker容器启动时自动运行脚本 在使用Docker构建应用程序时,有时我们希望在启动Docker容器时自动执行一些脚本,以初始化应用程序或执行一些必要的操作。 Docker bash 启动脚本 k8s如何实现docker镜像运行启动系统界面 在 Kubernetes (k8s) 中运行 Docker 镜像并启动系统界面,通常意味着您想要运行一个包含图形用户界面 (GUI) 的应用程序。这通常涉及到一些额外的步骤,因为 GUI 应用程序需要图形显示服务器和可能的图形传输协议。以下是在 Kubernetes 中实现 Docker 镜像运行并启动系统界面的详细步骤,以及每个步骤的解释:步骤 1:准备 Docker 镜像首先,您需要一个包含 应用程序 Docker Deployment docker配置otter教程 # Docker配置Otter教程## 概述在本教程中,我们将学习如何使用Docker配置Otter,一个用于数据同步和数据采集的开源工具。Otter提供了一个方便的方式来管理数据同步任务和监控数据变化。## 流程概述下面是配置Otter的基本流程,我们将以表格形式展示每个步骤:| 步骤 | 操作 Docker 数据同步 docker otter otter 图片 数据库 美国 阿里巴巴 项目介绍 Otter源码 查找对应的源码及相关的逻辑:支持ddl同步跳过ddl异常 报错1: git clone git@github.com:alibaba/otter.git cd otter; mvn clean install -Dmaven.test.skip -Denv=release https://githu otter 源码 mysql maven jar java otter # 如何实现"Java Otter"## 摘要本文将介绍如何实现"Java Otter"。"Java Otter" 是一个基于Java语言的开源项目,旨在提供一个简单易用的数据同步工具。本文将指导一位刚入行的小白开发者如何实现"Java Otter",包括流程概述、每个步骤的具体实现和代码示例。## 目录1. 流程概述2. 步骤1:安装Java Otter3. 步骤2:配置Java Java 数据同步 mysql Otter专题 A:故障:node未找到. 原因:node机器添加完成后,跳转到机器列表页面,获取对应的机器序号nid,node节点对应的唯一标识 otter 中间件 数据同步 2088 java 数据同步——otter 一、背景本人是一名应届毕业生,,还在努力挖坑。最近两个月被外派到其他公司做一个升级系统,做到现在一个多月。学到的东西很多,想总结的东西也很多,可是。。。时间是让人猝不及防的东西。好吧,现在先来总结otter数据同步。升级系统需要做到内网数据库(主)和外网的n个数据库(从)进行数据同步,考虑的方案有:直接在项目配置n个从数据库加1个主库,但是码代码太麻烦了,有工具多好使。用... 数据同步 数据库 Otter-安装配置-(7)otter性能测试 otter同步性能 otter 数据 同步 mysql同步 otter性能 otter同步 Otter小试 这是学习笔记的第 2058 篇文章 学习 otter搭建 部署otter otter otter binlog # otter binlog科普在数据库领域,binlog是一个常用的概念,表示二进制日志。它记录了数据库中发生的所有更改操作,包括插入、更新和删除等。通过分析和解析binlog,我们可以恢复数据、复制数据以及进行数据分析等操作。## otter binlog简介otter binlog是一个开源的、基于Java开发的、用于解析和处理MySQL binlog的工具。它使用了一种轻量级的 数据库 数据 MySQL Otter-安装配置-(3)otter-node安装 otter数据同步 otter 数据同步 mysql同步 otter详解 otter node 阿里 otter搭建部署 数据同步 zookeeper mysql sql docker安装的otter一直在重启 # 解决Docker安装的Otter一直在重启的问题在使用Docker部署Otter时,有时候会遇到Otter服务一直在重启的问题,这会影响到Otter的正常运行。本文将介绍如何解决Docker安装的Otter一直在重启的问题,并提供一些常见的解决方法。## 问题描述当我们使用Docker安装Otter时,可能会遇到Otter服务一直在重启的情况。这种情况通常是由于配置错误或者系统环境 重启 Docker 配置文件 MySQL数据同步之otter 一、otter介绍基于日志数据,用于MySQL或者ORACLE之间准实时同步数据。用途:mysql/oracle互相同步中间表/行记录同步 二、原理及架构图 otter整体模块manager (提供web页面进行同步管理)arbitrate (分布式调度,可跨IDC机房)node (同步过程setl)canal / eromanga (同步数据来源) 大集群化部署1个manager集群 + 多个I java otter源码分析 TODO 想解决一个源码的疑问,需要debug otter node模块。开启同步任务后,local node 的 mainstem一直 显示:定位中,数据更改后,同步功能不可用。 bug信息如下pid:8 nid:3 exception:canal:test_cancal_debug:java.lang.N otter java mysql jar 利用otter实现跨机房数据同步 Otter: otter是阿里开源的一个分布式数据库同步系统,尤其是在跨机房数据库同步方面,有很强大的功能。它是基于数据库增量日志解析,实时将数据同步到本机房或跨机房的mysql/oracle数据库。 环境:(由于环境隐私原因,环境中使用的外部IP隐藏)网络图:实验环境:A机房(公司内网)《===》B机房(云服务环境内网) 数据源(mysq otter 跨机房 数据同步 otter 如何监控某个表的同步记录 otter 数据同步 otter是一个分布式数据库同步系统工具,纯java编写,支持windows和linux操作系统。阿里的开源项目,数据同步的解决方案。Otter作为阿里巴巴开源的是一个数据同步产品,他的最初目的是为了解决跨国异地机房双A架构,两边可写的场景,开发时间是从2011年一直持续到今天。目前阿里巴巴b2b内部的本地--异地机房的同步需求基本上已经全部上了Otter。Otter基于数据库增量日志解析,支持m otter 如何监控某个表的同步记录 zookeeper github 数据库