阿里 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-
{BASH_SOURCE-$0}"`
修改bin/zkCli.sh脚本:
vi /usr/local/zookeeper/bin/zkCli.sh
将ZOOBIN="${BASH_SOURCE-
{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管理
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、测试
在源库中增加、修改、删除数据,在目标库中会准实时跟着变更。
无论channel是否运行,点击推送,都可以同步两个数据库的数据
channel配置的两个数据库,一个数据库停止,channel会挂起,点击推送后恢复正常运行