阿里 otter搭建部署

IP:10.10.6.172 部署:mysql目标库,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

character-set-server=utf8 #default-character-set=utf8

collation-server=utf8_general_ci #设置mysql的字符集

下载ddl同步策略表

https://github.com/alibaba/otter/tree/master/node/deployer/src/main/resources/sql/otter-system-ddl-mysql.sql

下载manager系统表

wget​ https://raw.github.com/alibaba/otter/master/manager/deployer/src/main/resources/sql/otter-manager-schema.sql ​#导入otter数据库中

导入系统表和otter用户

mysql>source otter-manager-schema.sql

mysql>source otter-system-ddl-mysql.sql

mysql>CREATE USER canal IDENTIFIED BY 'canal;

mysql>GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';

mysql>GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%';

mysql>FLUSH PRIVILEGES;

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

官网地址: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-

阿里 otter搭建部署_mysql

{BASH_SOURCE-$0}"`

修改bin/zkCli.sh脚本:

vi /usr/local/zookeeper/bin/zkCli.sh

将ZOOBIN="${BASH_SOURCE-

阿里 otter搭建部署_mysql

{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

官网地址: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.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

官网地址: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

rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm yum -y install aria2

四、部署canal

官网地址: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管理

阿里 otter搭建部署_zookeeper_03

2、Node管理

阿里 otter搭建部署_sql_04

阿里 otter搭建部署_sql_05

阿里 otter搭建部署_sql_06

3、数据源配置

阿里 otter搭建部署_mysql_07

阿里 otter搭建部署_zookeeper_08

阿里 otter搭建部署_sql_09

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;

阿里 otter搭建部署_sql_10

阿里 otter搭建部署_zookeeper_11

阿里 otter搭建部署_sql_12

阿里 otter搭建部署_mysql_13

5、canal配置

阿里 otter搭建部署_zookeeper_14

6、同步管理

阿里 otter搭建部署_mysql_15

阿里 otter搭建部署_mysql_16

阿里 otter搭建部署_zookeeper_17

阿里 otter搭建部署_zookeeper_18

阿里 otter搭建部署_mysql_19

阿里 otter搭建部署_mysql_20

阿里 otter搭建部署_zookeeper_21

阿里 otter搭建部署_sql_22

7、测试

在源库中增加、修改、删除数据,在目标库中会准实时跟着变更。

无论channel是否运行,点击推送,都可以同步两个数据库的数据

channel配置的两个数据库,一个数据库停止,channel会挂起,点击推送后恢复正常运行