虚拟机A :192.168.0.130
虚拟机B :192.168.0.131
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 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
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并修改以下配置
1.2.4 Otter Manager安装
安装包地址 https://github.com/alibaba/otter/releases 请自己选择版本
解压可见conf文件夹下otter.properties文件,修改以下配置
1.2.5 Otter Node 安装
安装包地址 https://github.com/alibaba/otter/releases 请自己选择版本
解压可见conf文件夹下otter.properties文件,修改以下配置
conf文件夹下创建一个新的配置文件,命名为nid,写入node id,A机为1,B机为2。该id后面会介绍。
进入ZooKeeper目录下的bin文件夹,执行以下命令(不要使用sh,一定要用bash)
在A机中执行以下数据库语句,创建Otter库
在A,B机中都要执行以下数据库语句,创建retl库(若只是单向同步,则不需要执行该语句。该语句用作双A同步时的算法)
进入Otter Manager 下的bin目录
这时等待数秒,Otter Manager站点已启动,可以访问http://192.168.0.130:9000配置Otter Node 的信息了。
如果你未在Otter Manager站点配置Otter Node的信息,则请暂时跳过该节,直接查看下面配置章节,配置完成后再回来该节启动Otter Node
进入Otter Node下的bin目录
进入Otter Manager站点后,使用账号:admin,密码:admin(默认),获得超级管理员权限。
机器管理 --> ZooKeeper管理 ,添加,保存,如下图
机器管理 --> Node管理 ,添加,保存(2次,A机一个Node,B机一个Node),如下图(名称和IP需要根据不同机器修改,这里只列出A机图片)
最后可在Node管理列表中看见,其中序号即我们上面安装过程中写入的nid文件的id号,配置好之后,即可启动Otter Node
启动后可见配置列表
配置管理 --> 数据源配置,配置A机、B机两个MySQL 数据源
配置完成后可见配置列表
配置管理 --> 数据表配置,配置A机、B机两个MySQL 数据源所需要同步的数据表(自己的数据库,我这里新建test库),其中table name配置如果想同步所有表则配置为.*,否则则配置对应表名即可
配置完成后可见配置列表
将canal看作是A、B两机的从库即可,github上解释道,canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议。
配置管理 --> canal配置,配置A机、B机两个canal。实质上两个canal分别运行在A、B两机上的Node节点上。配置如下,其他使用默认配置。
位点信息分别在A、B两个MySQL执行以下语句获取
配置完成后可见配置列表
同步管理 --> Channel管理 ,添加一个Channel
添加后,点击进入Pipeline管理
添加两个Pipeline,如图是其中一个方向,另外一个方向Select、Load机器相反。canal选择与Node机器选择一致方向,即要与Select机器一样。选择其中一个Pipeline作为主站点,并在高级设置中勾选支持ddl同步,另外一个主站点勾选否,支持ddl同步选择否。
添加后,点击进入映射关系列表,选择好同步表的方向
至此。配置完成。到Channel管理中开启同步任务,Otter将为我们自动双A同步数据啦!