mysql 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都要安装)

DB:MySQL 5.7.20(A、B都要安装)

ZooKeeper:3.4.11(只装A机)

Otter Manager:4.2.14 (只装A机)(4.2.15启动Node时感觉有Bug,没有使用)

Otter Node:4.2.14(A、B都要安装)

1.2 安装环境

1.2.1 JRE安装

sudo apt-get install default-jre

1.2.2 MySQL安装

sudo apt-get install mysql-server

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

character-set-server=utf8

log-bin=mysql-bin

binlog-format=ROW

server-id=1 #A,B需要设置成不一样的id

#bind-address=127.0.0.1 #注释该行

service mysql restart

进入mysql,设置单独账号密码

1.2.3 ZooKeeper安装

安装包地址 http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz

解压可见conf文件夹下有一个zoo_sample.cfg的文件,重命名为zoo.cfg并修改以下配置

dataDir=../datas

dataLogDir=../logs

1.2.4 Otter Manager安装

安装包地址 https://github.com/alibaba/otter/releases 请自己选择版本

解压可见conf文件夹下otter.properties文件,修改以下配置

#以下配置为最基本需要改的配置,其他配置可根据实际要用的功能进行修改

otter.domainName = 192.168.0.130 #一定要改,不要用127.0.0.1

otter.port = 9000 #manager 站点端口号

otter.database.driver.url = jdbc:mysql://192.168.0.130:3306/otter

otter.database.driver.username = root

otter.database.driver.password = password

otter.zookeeper.cluster.default = 192.168.0.130:2181

1.2.5 Otter Node 安装

安装包地址 https://github.com/alibaba/otter/releases 请自己选择版本

解压可见conf文件夹下otter.properties文件,修改以下配置

#以下配置为最基本需要改的配置,其他配置可根据实际要用的功能进行修改

otter.nodeHome = ../

otter.manager.address = 192.168.0.130:1099

conf文件夹下创建一个新的配置文件,命名为nid,写入node id,A机为1,B机为2。该id后面会介绍。

1

2.启动

2.1 启动ZooKeeper

进入ZooKeeper目录下的bin文件夹,执行以下命令(不要使用sh,一定要用bash)

bash zkServer.sh start

2.2 启动Otter Manager

在A机中执行以下数据库语句,创建Otter库

在A,B机中都要执行以下数据库语句,创建retl库(若只是单向同步,则不需要执行该语句。该语句用作双A同步时的算法)

进入Otter Manager 下的bin目录

bash startup.sh

这时等待数秒,Otter Manager站点已启动,可以访问http://192.168.0.130:9000配置Otter Node 的信息了。

2.3 启动Otter Node

如果你未在Otter Manager站点配置Otter Node的信息,则请暂时跳过该节,直接查看下面配置章节,配置完成后再回来该节启动Otter Node

进入Otter Node下的bin目录

bash startup.sh

3.配置

进入Otter Manager站点后,使用账号:admin,密码:admin(默认),获得超级管理员权限。

3.1 ZooKeeper配置

机器管理  -->  ZooKeeper管理 ,添加,保存,如下图

6a5eeb54336ed8fe5a715b2e4e6415cc.png

3.2 Node配置

机器管理  -->  Node管理 ,添加,保存(2次,A机一个Node,B机一个Node),如下图(名称和IP需要根据不同机器修改,这里只列出A机图片)

2d93d44b1f4212711c9a7295ea82c267.png

最后可在Node管理列表中看见,其中序号即我们上面安装过程中写入的nid文件的id号,配置好之后,即可启动Otter Node

8f170871d79429226117845cceb40d74.png

启动后可见配置列表

804a59ac79d6bf0b7d944e8ee0ab7e22.png

3.3 数据源配置

配置管理  -->  数据源配置,配置A机、B机两个MySQL 数据源

0beea40728fa827ecee68c48608b3048.png

配置完成后可见配置列表

3827f40e2de05d593883826b6a833b9d.png

3.4 数据表配置

配置管理  -->  数据表配置,配置A机、B机两个MySQL 数据源所需要同步的数据表(自己的数据库,我这里新建test库),其中table name配置如果想同步所有表则配置为.*,否则则配置对应表名即可

ef9936c5d666fa745d0153f00c04c116.png

配置完成后可见配置列表

b122ee00ab0f50c6afa4c4ded9d74c47.png

3.5 Canal配置

将canal看作是A、B两机的从库即可,github上解释道,canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议。

配置管理  -->  canal配置,配置A机、B机两个canal。实质上两个canal分别运行在A、B两机上的Node节点上。配置如下,其他使用默认配置。

位点信息分别在A、B两个MySQL执行以下语句获取

b0e18c89567e43b45e661a5e295e14fa.png

配置完成后可见配置列表

2eb969b0b54e38d6fd746d1cb0f809b8.png

3.6 同步任务配置

同步管理 -->  Channel管理 ,添加一个Channel

dc77ff64ae89b903a7a6ee5f54168215.png

添加后,点击进入Pipeline管理

eb6eebc920b1ee7759884753f2d242a9.png

添加两个Pipeline,如图是其中一个方向,另外一个方向Select、Load机器相反。canal选择与Node机器选择一致方向,即要与Select机器一样。选择其中一个Pipeline作为主站点,并在高级设置中勾选支持ddl同步,另外一个主站点勾选否,支持ddl同步选择否。

b0d6e774410821dfa5b1bba5721ce265.png

添加后,点击进入映射关系列表,选择好同步表的方向

15a1fc4ba5127bd78abd421e9ff69996.png

至此。配置完成。到Channel管理中开启同步任务,Otter将为我们自动双A同步数据啦!

30fb6e237c538dfe2e693b5b42c56455.png

7148867ba5525ed9c5754f97d46730c1.png

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值