otter

深入浅出 Otter与Canal

倾然丶 夕夏残阳落幕 提交于 2020-02-29 03:44:10
第一、Otter 基于数据库增量日志解析,准实时同步到本机房或异地机房的Mysql/Oralce数据库,一个分布式数据库同步系统; 基本工作原理图如下: 基于Canal开源产品,获取数据库增量日志数据; 典型管理系统架构,manager(WEB 管理) + node(工作节点) manager运行时推送同步配置到node节点; node节点将同步状态反馈到manager上; 基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作; 能解决什么? 1.异构库同步 mysql -> mysql/oracle (目前开源版本只支持mysql增量,目标库可以是mysql或者是oracle,取决于canal的功能) 2.单机房同步(数据库之间RTT < 1ms) 数据库版本升级; 数据表迁移; 异步二级索 来源: CSDN 作者: 杨鑫newlfe 链接: https://blog.csdn.net/u012965373/article/details/104563852

canal入门Demo

亡梦爱人 提交于 2020-02-13 21:11:00
关于canal具体的原理,以及应用场景,可以参考开发文档: https://github.com/alibaba/canal 下面给出canal的入门Demo (一)部署canal服务器 可以参考官方文档的QuickStart: https://github.com/alibaba/canal/wiki/QuickStart 为了完整性,下面重复给出如何配置canal服务器 开启mysql的binlog功能,并配置binlog模式为row 1. Windows环境下,是修改my.ini文件: [mysqld] log-bin=mysql-bin #添加这一行就ok binlog-format=ROW #选择row模式 server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复 2. 在mysql中 配置canal数据库管理用户,配置相应权限(repication权限),运行mysql后依次运行这四条代码: 1 CREATE USER canal IDENTIFIED BY 'canal'; 2 GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%'; 3 -- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%

文件监听同步(canal 搭建)

梦想的初衷 提交于 2020-01-16 03:05:47
参考文档 https://github.com/alibaba/canal/wiki/QuickStart mysql开启bin-log日志 log_bin = /var/lib/mysql/bin-log skip-name-resolve binlog-format=ROW 创建canal对象 CREATE USER canal IDENTIFIED BY 'canal'; GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%'; flush privileges; 下载canal wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.deployer-1.1.4.tar.gz 编写canal.properties cat /usr/local/canal/conf/canal.properties ----------------------------------------------------- ################################################# ######### common argument ############# ######

mysql使用keepalived搭建双master

我的梦境 提交于 2019-12-05 19:54:14
这里的双master并不是2个都同时对应用开放写,只是同一个时刻只有1个mysql对外开放写,另一个作为slave接受从master同步过来的数据,当master挂掉后,通过keepalived的VIP转移,使slave变成master,从而形成高可用的环境 keepalived的master配置如下 vrrp_script mycheck { script "/usr/local/keepalived/shutdown.sh" interval 2 # check every 2 seconds weight 2 # default prio: +2 if connect ok } global_defs { router_id NodeA } vrrp_instance VI_1 { state BACKUP interface eth1 virtual_router_id 151 priority 201 advert_int 1 nopreempt authentication { auth_type PASS auth_pass pass } virtual_ipaddress { 192.168.0.100 } track_script { mycheck } } slave配置如下: vrrp_script mycheck { script "/usr/local

otter搭建说明

风流意气都作罢 提交于 2019-12-04 22:33:27
1 环境 说明: 本机 ip 192. 1 68. 8.3 虚拟机 1 ip 192.168.8.5 虚拟机 2 ip 192.168.8.6 虚拟机 采取桥接 模式 虚拟机 系统为 CentOS 2.6.32-279. el6.i686 java 版本 1.6.0-24 mysql 版本 5.1.61-log 2 虚拟机 8.5 搭建 otter 2.0 配置固定 ip 和 修改 host 2.0.1 虚拟机 8.5 ip 为 192.168.8.5 2.0.2 修改 host vi /etc/hosts 2.1 关闭 防火墙 root 用户 service iptables stop 2.2 安装 mysql 2.2.1 用户为 root ,密码为 hello 2.2.2 修改 mysql 的 配置 文件 vi /etc/my.cnf 其中 , log-bin 为打开 mysql 的 binlog 二进制 日志 binlog-format 为列模式 server-id 需要 保证不同的数据库的 id 不相同,具有唯一性 datadir 为数据存储的文件夹,没有的话需要进行创建 default -character-set=utf8 , 为设置 mysql 的 默认 字符集 为 utf-8 2.2.2 初始化 otter 数据库,初始化 sql 为 文件夹中的 otter

Otter-入门篇4(单向同步实践)

纵饮孤独 提交于 2019-12-04 22:29:14
Otter-入门篇4(单向同步实践)# 前言## 在前几节我们已经做好了关于otter的准备工作,配置好了zookeeper,manage和node,本节就来完成otter第一个实际功能,单相数据同步.单向数据同步可以解决跨机房主从的问题,所有读操作都能从本地的从库进行操作,而写可以通过外网连接到主服务器进行写入,并且通过otter同步到各个从服务器,可以很好地应对多机房读业务偏多的场景,那么话不多说就开始本节的正文吧! 附上: 喵了个咪的博客: w-blog.cn Otter项目地址: https://github.com/alibaba/otter Otter文档地址: https://github.com/alibaba/otter/wiki 1. 准备工作 Mysql多实例可以通过 mysqld_multi 进行配置,资料也比较多这里不详细说明了. 笔者这里准备了两个mysql实例来做同步,均采用mysql5.6: 10.144.159.182(master) 10.163.122.106(slave) 我们还需要检查一下数据库配置,编辑**/etc/my.cnf**,检查一下配置 binlog_format=ROW #修改成ROW server-id = 1 #不同mysql的server-id设置为不同的值 应为后续需要进行测试单机本地测试不能很好的反应实际情况这里

Otter-入门篇3(Node搭建)

守給你的承諾、 提交于 2019-12-04 22:28:54
#Otter-入门篇3(Node搭建)# ##前言## 哈咯大家好呀!今天是对otter准备的最后一个流程,配置好node,并且吧manager,zookeeper和node组合起来形成一个完整可以进行Mysql同步任务的服务,话不多说我们今天就来来事准备工作的最后一步Node搭建吧! 附上: 喵了个咪的博客: w-blog.cn Otter项目地址: https://github.com/alibaba/otter Otter文档地址: https://github.com/alibaba/otter/wiki ##1. 安装配置aria2## 我们在介绍otter的特性里面有提及到aria2,它是一个文件通道来保证需要同步的数据通过极快的速度同步到需要同步的服务器上 cd /app/install/ tar zxvf aria2-1.17.1.tar.gz mv aria2-1.17.1 aria2 cd aria2 ./configure make make install # 验证安装是否成功 aria2c -v # 会输出 aria2 version 1.17.1 Copyright (C) 2006, 2013 Tatsuhiro Tsujikawa ##2. 安装配置node## 接下来我们来配置node,node主要负责接受manage下发任务的处理 mkdir

Otter-入门篇2(Manager安装配置)

浪子不回头ぞ 提交于 2019-12-04 22:28:40
#Otter-入门篇2(Manager安装配置)# ##前言## 上一节已经简单介绍了Otter的基本信息,本节我们就来开准备搭建一个我们自己的Otter环境,因为一个Otter需要Manage+node+数据库还有很多的依赖,本节我们先来搭建Otter的管理服务器Manager. 附上: 喵了个咪的博客: w-blog.cn Otter项目地址: https://github.com/alibaba/otter Otter文档地址: https://github.com/alibaba/otter/wiki ##1. 环境安装包说明 笔者这边使用的服务器配置为: 2核心4G云服务器 Centos6.5(64位) 所需的软件包可以访问如下连接进行下载: 百度网盘 我们把下载好的文件存放到/app/install目录下: 推荐使用OneinStack进行环境配置(默认会更新GCC,cmake等减少依赖出现的问题) oneinstack官网地址 wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz tar xzf oneinstack-full.tar.gz cd oneinstack ./install.sh 按照如下选项配置安装mysql5.6,密码为otter**(初始化manager需要mysql的支持)*

数据同步组件otter环境搭建

為{幸葍}努か 提交于 2019-12-04 22:28:22
一、otter介绍 部分说明引用阿里otter项目的wiki 。阿里otter工具地址: https://github.com/alibaba/otter/wiki otter为阿里的一款增量数据同步工具,基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统。 公司最近需要把线下的数据同步到云仓,选用了otter这款工具做mysql的增量数据同步,所以花了几周的时间来趟坑。当然otter也可以做全量数据同步,不过太过于麻烦,可以考虑其他方式先做全量后,再做增量。 otter工作原理 其他的不做介绍了,阿里wiki中有更详细的介绍,这里主要些搭建步骤和躺过的坑。 二、环境搭建 1、mysql 源库mysql需要开启binlog,因为otter是基于canal的,而canal是基于binlog的,so,第一步需要MySQL开启binlog。 开启binlog的方法:Linux修改my.cnf文件,Windows修改MySQL的my.ini文件。具体先百度吧 2、zookeeper搭建 zk可以单击版也可以搭建集群,我搭建的是伪分布式,没那么多机子。具体步骤见我的另一篇博文。 3、otter配置 a)执行SQL文件:为otter新建一个名称为otter库(可以取其他名字),在下载包中(地址: https://github.com

【源码】otter工程结构

断了今生、忘了曾经 提交于 2019-12-03 20:40:02
最近在搞数据同步相关的内容,需要对otter的代码进行扩展,所以需要先熟悉一下otter的源码。首先我们整体来看下otter的工程结构。otter的工程结构比较复杂,需要花费一定的时间来理解各个部分的内容,仅仅通过官方文档无法准确的理解各个模块的内容,现分析如下: otter整体的工程结构如下: otter |--manager |--biz |--deployer |--web |--node |--canal |--common |--deployer |--etl |--extend |--shared |--arbitrate |--common |--communication |--etl |--push 其中,通过官方文档我们可以知道,manager和node是要单独部分的工程,所以我们可以大体了解如下内容: manager是对node节点进行管理,数据统计,node节点之间的协调,基本信息的同步等。 biz:业务处理内容 deployer:manager打包和启动的类,主要内置一个jetty的服务启动器,通过OtterManagerLauncher启动 web:manager的web页面相关内容,包括接口 node是实际上进行数据同步的工程 canal:canal客户端,就是订阅binlog的客户端,Otter采用的是Embed的方式引入Canal common