otter部署【原创】
环境
IP:10.10.6.171 部署:mysql源库
IP:10.10.6.172 部署:mysql目标库
IP:10.10.6.173 部署:zookeeper,manager,node,canal (也都部署到源库服务器上)
由于otter进行数据库同步,目前仅支持row,所以需要把源库的binlog_format改为ROW
log-bin=mysql-bin
expire_logs_days=3
binlog_format=ROW
otter为纯java编写(manager,node,canal都为java编写),所以需要安装JDK。
设置java环境变量
vi /etc/profile
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=/usr/local/jdk/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
#生效
source /etc/profile
一、部署zookeeper
下载地址:http://pan.baidu.com/s/1miC2j4O
官网地址:https://zookeeper.apache.org/
tar zxvf zookeeper-3.4.10.tar.gz
mv zookeeper-3.4.10 /usr/local/zookeeper
cd /usr/local/zookeeper/conf
mv zoo_sample.cfg zoo.cfg
mkdir /usr/local/zookeeper/data
修改zoo.cfg配置文件
vi /usr/local/zookeeper/conf/zoo.cfg
dataDir=/usr/local/zookeeper/data
autopurge.purgeInterval=1
修改bin/zkEnv.sh脚本
vi /usr/local/zookeeper/bin/zkEnv.sh
将ZOO_LOG_DIR="." 修改为ZOO_LOG_DIR="/usr/local/zookeeper/data"
将ZOO_LOG4J_PROP=”INFO,CONSOLE” 修改为ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
修改bin/zkServer.sh脚本:
vi /usr/local/zookeeper/bin/zkServer.sh
将ZOOBIN="${BASH_SOURCE-$0}" 修改为ZOOBIN=`readlink -f "${BASH_SOURCE-$0}"`
修改bin/zkCli.sh脚本:
vi /usr/local/zookeeper/bin/zkCli.sh
将ZOOBIN="${BASH_SOURCE-$0}" 修改为ZOOBIN=`readlink -f "${BASH_SOURCE-$0}"`
建立软连接
ln -s /usr/local/zookeeper/bin/zkServer.sh /usr/local/bin/zk-server
ln -s /usr/local/zookeeper/bin/zkCli.sh /usr/local/bin/zk-cli
echo 1 > /usr/local/zookeeper/data/myid
启动:zk-server start
关闭:zk-server stop
二、部署manager
下载地址:http://pan.baidu.com/s/1i5aEEw9
官网地址:https://github.com/alibaba/otter/releases
mkdir /usr/local/manager
tar zxvf manager.deployer-4.2.14.tar.gz -C /usr/local/manager
配置修改
vi /usr/local/manager/conf/otter.properties
## otter manager domain name #修改为正确访问ip,生成URL使用
otter.domainName = 10.10.6.173
## otter manager http port
otter.port = 8080
## jetty web config xml
otter.jetty = jetty.xml
## otter manager database config #修改为正确数据库信息 otter数据库SQL:http://pan.baidu.com/s/1kUEVQEN
otter.database.driver.class.name = com.mysql.jdbc.Driver
otter.database.driver.url = jdbc:mysql://10.10.6.199:3306/otter
otter.database.driver.username = root
otter.database.driver.password = 123456
## default zookeeper address #修改为zookeeper地址信息
otter.zookeeper.cluster.default = 127.0.0.1:2181
启动:/usr/local/manager/bin/startup.sh
关闭:/usr/local/manager/bin/stop.sh
三、部署node
下载地址:http://pan.baidu.com/s/1bpEg2g3
官网地址:https://github.com/alibaba/otter/releases
mkdir /usr/local/node
tar zxvf node.deployer-4.2.14.tar.gz -C /usr/local/node
cd /usr/local/node
echo 1 > conf/nid #需要和manager管理页面的序号相同
配置修改
vi /usr/local/node/conf/otter.properties
## otter arbitrate & node connect manager config #修改manager的地址信息
otter.manager.address = 127.0.0.1:1099
启动:/usr/local/node/bin/startup.sh #先不用启动
关闭:/usr/local/node/bin/stop.sh
node需要aria2
下载地址:http://pan.baidu.com/s/1hsonOA4
rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
yum -y install aria2
四、部署canal
下载地址:http://pan.baidu.com/s/1jIE8nTc
官网地址:https://github.com/alibaba/canal/releases #下载canal.deployer
mkdir /usr/local/canal
tar zxvf canal.deployer-1.0.24.tar.gz -C /usr/local/canal
#只需部署canal无需配置和启动,canal可嵌入式运行,在manager页面管理中设置
五、设置manager管理页面
访问地址:http://10.10.6.173:8080/login.htm 用户名密码都为admin,密码可以系统管理中修改
1、Zookeeper管理
2、Node管理
3、数据源配置
4、数据表配置
先在源库和目标库新建一个测试表
SQL代码:
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;
5、canal配置
6、同步管理
7、测试
在源库中增加、修改、删除数据,在目标库中会准实时跟着变更。
otter部署【原创】的更多相关文章
- mysql数据库同步系统otter部署实践(中国与欧洲同步)
otter的介绍就不说了, 自己去看官网https://github.com/alibaba/otter/wiki 本系统中, 中国的服务器部署在阿里云上, 欧洲服务器部署在亚马逊上, 由于阿里云的网 ...
- Hyperledger fabric 1.3版本的安装部署(原创多机多Orderer部署
首先,我们在安装前,要考虑一个问题 Hyperledger Fabric,通过指定的节点进行背书授权,才能完成交易的存储 延伸开来,就是为了实现容错.高并发.易扩展,需要zookeeper来选择排序引 ...
- keeplived + mysql双主复制部署 --原创
环境: master 1: 192.168.100.10 oracle linux 7.4 mysql 5.7.1 master 2: 192.168.100.11 oracle linux ...
- 拥抱云原生,如何将开源项目用k8s部署?
微信搜索[阿丸笔记],关注Java/MySQL/中间件各系列原创实战笔记,干货满满. k8s以及云原生相关概念近年来一直比较火热,阿丸最近搞了个相关项目,小结一下. 本文将重点分享阿里开源项目otte ...
- 阿里mysql同步工具otter的docker镜像
https://github.com/dearplain/otter_manager https://github.com/dearplain/otter_node 本人开发的小巧docker镜像,根 ...
- windows平台上运行Flink_转载于CSDN
Flink安装部署-window 本地部署原创冰上浮云 发布于2019-08-17 15:56:06 阅读数 633 收藏分类专栏: flink版权声明:本文为博主原创文章,遵循 CC 4.0 BY- ...
- [原创]java WEB学习笔记44:Filter 简介,模型,创建,工作原理,相关API,过滤器的部署及映射的方式,Demo
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- “500 oops socket” Debian 9 running via Linux Deploy上成功部署vsftpd的解决方案(201901原创)【成功完美简单极致】
"500 oops socket" Debian 9 running via Linux Deploy上成功部署vsftpd的解决方案(201901原创)[成功完美简单极致] #自 ...
- 理想的DevOp流程怎么做?看看Slack的代码部署实践 原创 Michael Deng 高可用架构 今天
理想的DevOp流程怎么做?看看Slack的代码部署实践 原创 Michael Deng 高可用架构 今天
随机推荐
- bzoj千题计划302:bzoj3160: 万径人踪灭
https://www.lydsy.com/JudgeOnline/problem.php?id=3160 不连续的回文串数量=所有的回文序列数量-连续的回文子串 连续的回文子串: manacher ...
- <algorithm>里的sort函数对结构体排序
题目描述 每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签到.签离记录,请根据记录找出当天开门和关门的人. 输入描述: 每天的记录在第一行给出记录的条目数M (M &g ...
- LR(0)文法项目集规范族、DFA和分析表的构建实例
最近在复习编译原理,考试之前以为自己懂了,眼高手低就没去实践.结果一考试出问题了.... 学习就要脚踏实地,容不得半点模糊.凭着侥幸心理很危险的.以后要引以为戒啊. 特别写出这篇文章 :一来总结一下这 ...
- .NET面试题系列(十二)Dictionary原理
序言 Dictionary Dictionary的开发人员都了解,和List相比,字典添加会慢,但是查找会比较快. Dictionary的本质 --- 两个数组.这是典型的用空间换取时间的做法. 先来 ...
- PHP 将amr音频文件转换为mp3格式
说下整体思路 1.服务器安装ffmpeg 2.使用ffmpeg -i 指令来转换amr为mp3格式(这个到时候写在PHP代码中,使用exec函数执行即可) 3.在网页端使用HTML5的audio标签来 ...
- 数据库的一致性读,赃读,多线程与赃读,ACID,UNDO
赃读 对于对象额同步异步方法,我们在设计自己的程序的时候,一定要考虑的问题整体,不然会出现数据不一致的错误,很经典的就是赃读(dityread) 示例: package com.nbkj.thre ...
- Java SE之正则表达式Demo
@Test public void regex() {//匹配教务系统课程 // String content = "公共机座 (1-10)".replaceAll(" ...
- CF418D Big Problems for Organizers
传送门 题意,给一棵树,每次给两个点\(x,y\),求\(\max_{i=1}^{n}(\min(di_{x,i},di_{y,i}))\) 看std看了好久 以下是一个优秀的在线做法,\(O(nlo ...
- Android学习笔记——Content Provider(一)
Content Provider是Android系统四大组件之一: 官方的定义是:A Content Provider manages access to a central repository o ...
- 【通信】URLConnection 详细
通信链接.程序可以通过URLConnection实例向该URL发送请求.读取URL引用的资源. 通常创建一个和 URL的连接,并发送请求.读取此URL引用的资源需要如下几个步骤: 通过调用URL对象o ...