otter双A同步配置
otter双A配置
最近做跨国服务器的数据同步,用了阿里的otter开源框架,遇到了不少问题,写一下文档为以后做参考。
第一步:
下载所需的文件 :otter,zookeeper,aria2
otter下载地址:https://github.com/alibaba/otter
zookeeper下载地址:https://github.com/apache/zookeeper
aria2下载地址:http://sourceforge.net/projects/aria2/files/stable/
zookeeper :的配置网上有很多
aria2 : 加速文件传输用的 使用方法网上搜,很多
这里主要写对otter的使用
第二步:
进入$otter_home目录
执行:mvn clean install -Dmaven.test.skip -Denv=release
运行完后在 $otter_home 会生成 target 文件 解压文件中的 manager 和 node 文件
文件启动顺序 aria2 > zookeeper > manager > node
服务器环境搭建 :
一:在 A B 服务器中安装 jdk mysql
安装MySQL
安装完成后配置文件可根据现有的配置文件进行修改:
必须启用binlog而且只支持ROW格式
log-bin=mysql-bin
binlog-format=ROW
为了保证在同步过程中不意外产生数据差异,启用binlog的实时同步到磁盘的操作(此操作会对磁盘IO有开销),
避免在服务突然中断过程中差生binlog丢失造成服务无法启用:
sync_binlog=1
为提高兼容性最好默认就使用UTF8
character-set-server=utf8
指定固定的数据存储文件夹:
mkdir /data/mysql
datadir=/data/mysql
此数据库集群里面的每台MySQL的server-id必须不同,经过沟通为了保证伺候服务器集群的需求,暂定为8:
server-id=2
auto-increment-increment=8
auto-increment-offset=1
二: 在 A 中配置 ( node ) 在 B 中配置 ( zookeeper manager node)
导入需要的的表:
#mysql -uroot -pabc-123 <otter-manager-schema.sql
#mysql -uroot -pabc-123 <otter-manager-retl.sql
manager安装:
mkdir -p /usr/local/manager
tar xf manager.deployer-4.2.12.tar.gz -C /usr/local/mamager
cd /usr/local/mamager/conf
vim otter.properties
otter.domaniName = 10.0.0.2
otter.port = 8081
otter.database.driver.url = jdbc:mysql://10.0.0.2:3306/otter
otter.database.driver.username = root
otter.database.driver.password = abc-123
otter.zookeeper.cluster.default = 10.0.0.2:2181;10.0.0.2:2182;
启动manager : /startup.sh
vim otter. properties
otter.manager.address = 10.0.0.2:1099
cd /usr/local/node/bin
=================================到 此 A 服务器搭建完毕。==============================
配置B服务器:
1:安装MySQL
安装完成后配置文件可根据现有的配置文件进行修改:
必须启用binlog而且只支持ROW格式
log-bin=mysql-bin
binlog-format=ROW
为了保证在同步过程中不意外产生数据差异,启用binlog的实时同步到磁盘的操作(此操作会对磁盘IO有开销),
避免在服务突然中断过程中差生binlog丢失造成服务无法启用:
sync_binlog=1
为提高兼容性最好默认就使用UTF8
character-set-server=utf8
指定固定的数据存储文件夹:
mkdir /data/mysql
datadir=/data/mysql
此数据库集群里面的每台MySQL的server-id必须不同,经过沟通为了保证伺候服务器集群的需求,暂定为8:
server-id=2
auto-increment-increment=8
auto-increment-offset=1
2:安装java
rpm -ivh jdk-8u74-linux-x64.rpm
3:安装aria2
tar xf aria2-1.17.1.tar.gz
mv aria2-1.17 /usr/local/aria2
cd /usr/local/aria2
./configure
make
make install
4:安装zookeeper
mkdir /usr/local/zk
tar xf zookeeper-3.5.1-alpha.tar.gz -C /usr/local/zk
cd /usr/local/zk
mkdir data
cd data
echo “3” >myid
cd ..
cd conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
dataDir=/usr/local/zk/data
server.1 =10.0.0.2:8881:7771
server.2 =10.0.0.2:8882:7772
server.3 =10.0.0.3:8883:7773:observer
:x
5:安装node
vim otter. properties
otter.manager.address = 10.0.0.2:1099
cd /usr/local/node/bin
6:导入需要的表
#mysql -uroot -pabc-123 <otter-manager-retl.sql
otter-manager-retl.sql这个创建表会创建用户,请修改次用户的密码。
配置otter
登录manager 地址为 manager中配置的
账号:admin
密码:admin
登陆后必须修改。
1:添加zookeeper集群
2:添加node

将 A , B 两个 node 的ip地址
此处需要注意,在选择zookeeper集群的时候需要就近选择。
添加之后会生成node的号码,当你启用node的时候会受到报错需要nid,此处的nid就是以当你添加之后manager给node分配的号码为准:
cd /usr/local/node/conf
echo “1”>nid
启动node,所有的node都需要启动
cd /usr/local/node/bin
./startup.sh
都启动后稍后刷新manager node 状态为启动状态

3:添加数据源

4:添加数据表
这地方添加需要同步的数据表:

5:配置cannal

6:配置channel

7:Pipeline管理
配置2个Pipeline

如果要用DDL同步,一个pipeline开启ddl同步,另一个不要开启,且都要开启跳过ddl异常,DryRun模式 不要开启
8:添加映射关系

到此可以点击运行进行。
成功开启后如下图:
监控管理
监控项目:
同步延迟,position超时(位点超过多少时间没有更新) , 一般业务方关心这些即可
异常 (同步运行过程中出现的异常,比如oracle DBA关心oracle系统ORA-的异常信息,mysql DBA关心mysql数据库相关异常)
process超时(一个批次数据执行超过多少时间),同步时间超时(数据超过多少时间没有同步成功过)
阀值设置
1800@09:00-18:00 , 这例子是指定了早上9点到下午6点,报警阀值为1800.
发送对象
otterteam为otter团队的标识,阿里内部使用了dragoon系统监控报警通知,如果外部系统可实现自己的报警通知机制

修改发送对象:

注意:
1,安装依赖包yum install -y nc
2,域名的问题,在实际的生产过程中最好绑定域名,如无dns可使用hosts文件,如果不绑定域名manager的很多查看功能会报错
otter双A同步配置的更多相关文章
- otter双主同步安装与配置
otter是阿里的开源数据同步项目,资源地址就不用说了哈,网上找,阿里云论坛关于单方向同步的配置已经很清楚了,理论上说,双主同步也不复杂,但是毕竟 是数据库,比较重要,配置双主的时候,总觉得心里没底, ...
- Otter双A同步搭建入门教程
1.准备阶段 1.1 环境 虚拟机A :192.168.0.130 虚拟机B :192.168.0.131 系统:Ubuntu 16.04 LTS JRE:OpenJDK 1.8.0_151(A.B都 ...
- Docker Mysql数据库双主同步配置方法
一.背景 可先查看第一篇<Docker Mysql数据库主从同步配置方法>介绍 二.具体操作 1.创建目录(~/test/mysql_test1): --mysql --mone --da ...
- MySQL 异地 双机房同步之otter
一.背景: 阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求, 同时为了提升用户体验,整个机房的架构为双A,两边均可写,由此诞生了ott ...
- MySQL热机双备之双主同步复制配置
此配置方案来源于csdn前辈博客,奈何找不到出处了,抱拳!!! 1. MySQL同步机制概述 MySQL支持单向.异步复制,复制过程中一台服务器充当主服务器,一台或多台服务器充当从服务器,双主同步要 ...
- MySQL 主主同步配置和主从配置步骤
★预备知识 : 1.双机热备 对于双机热备这一概念,我搜索了很多资料,最后,还是按照大多数资料所讲分成广义与狭义两种意义来说. 从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服 ...
- Docker Mysql主从同步配置搭建
Docker Mysql主从同步配置搭建 建立目录 在虚拟机中建立目录,例如路径/home/mysql/master/data,目录结构如下: Linux中 新建文件夹命令:mkdir 文件夹名 返回 ...
- ssdb主从及双主模型配置和简单管理
ssdb主从及双主模型配置和简单管理 levelDB是一个key->value 的数据存储库,其只能在本地保存数据,支持持久化,并且支持保存非常大的数据,单机redis在保存较大数据的时候数十G ...
- MySQL 5.7双主同步部分表
参考:http://www.jb51.net/article/122892.htm?pc 前言: 我们要配置双主同步的mysql服务器. 暂时叫做,mysql1和mysql2吧. 一 mysql的配 ...
随机推荐
- nginx虚拟机配置(支持php)
由于本人水平有限,以下记录仅作参考. 下面贴出我的一份正常运行的nginx服务器虚拟机配置./usr/local/nginx/conf/vhost/www.xsll.com.conf server { ...
- Lua 和 C 交互中虚拟栈的操作
Lua 和 C 交互中虚拟栈的操作 /* int lua_pcall(lua_State *L, int nargs, int nresults, int msgh) * 以保护模式调用具有" ...
- AngularJS学习篇(二十四)
AngularJS 应用 <html ng-app="myNoteApp"> <head> <meta charset="utf-8&quo ...
- 浅谈Jquery中的bind(),live(),delegate(),on()绑定事件方式 [转载]
前言 因为项目中经常会有利用jquery操作dom元素的增删操作,所以会涉及到dom元素的绑定事件方式,简单的归纳一下bind,live,delegate,on的区别,以便以后查阅,也希望该文章日后能 ...
- Webpack 入门教程
Webpack 是一个前端资源加载/打包工具.它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源. 本章节基于 Webpack3.0 测试通过. 从图中我们可以看出,W ...
- An explicit value for the identity column in table can only be specified when a column list is used and IDENTITY_INSERT is ON
If you run into the following error message: An explicit value for the identity column in table '< ...
- 强大又简单的响应式框架——Foundation 网格系统
前端框架——Foundation 简介 Foundation 用于开发响应式的 HTML, CSS and JavaScript 框架. Foundation 是一个易用.强大而且 ...
- 【深度学习笔记】(二)基于MNIST数据集的神经网络实验
一.介绍 MNIST(Mixed National Institute of Standards and Technology database)是网上著名的公开数据库之一,是一个入门级的计算机视觉数 ...
- Spring+Spring MVC+MyBatis框架集成
目录 一.新建一个基于Maven的Web项目 二.创建数据库与表 三.添加依赖包 四.新建POJO实体层 五.新建MyBatis SQL映射层 六.JUnit测试数据访问 七.完成Spring整合My ...
- python 小白(无编程基础,无计算机基础)的开发之路 day1
本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...