otter异地mysql数据库同步实战

otter异地mysql数据库同步实战

摘要

otter异地mysql数据库同步实战

配置单向跨地数据库同步

ubuntu cn [cn-otter]
54.222.246.XXX

修改mysql binlog-format ROW

单向传递 node安装在哪里,那么哪个就是FROM端 , 就是源库.

准备文件

manager.deployer-4.2.13.tar.gz
node.deployer-4.2.13.tar.gz
otter-manager-schema.sql
zookeeper-3.4.5-cdh4.3.0.tar.gz

http://pan.baidu.com/s/1i578NSp

创建数据库 otter

导入 otter-manager-schema.sql

sudo apt-get install aria2

安装zookeeper

安装zookeeper
tar zxvf zookeeper-3.4.5-cdh4.3.0.tar.gz
sudo mkdir -p /data/app/zookeeper
sudo mv zookeeper-3.4.5-cdh4.3.0/* /data/app/zookeeper

cd /data/app/zookeeper/
cp conf/zoo_sample.cfg conf/zoo.cfg
sudo mkdir /data/app/zookeeper/data
sudo mkdir /data/app/zookeeper/log

vi conf/zoo.cfg
dataDir=/data/app/zookeeper/data
dataLogDir=/data/app/zookeeper/log

sudo ./bin/zkServer.sh restart
sudo ./bin/zkServer.sh status

安装 manager

sudo mkdir -p /data/app/manager
sudo tar zxvf manager.deployer-4.2.13.tar.gz -C /data/app/manager
cd /data/app/manager

添加域名
mydomain.cc A 54.222.246.XXX

修改配置 vi conf/otter.properties

AWS上添加防火墙暴漏端口 2088,2089,2090

otter.domainName = ottermgr.xender.com

otter.database.driver.url = jdbc:mysql://[rds-publicdns-cn]:3306/otter
otter.database.driver.username = user
otter.database.driver.password = pwd

zookeeper 跟 manager 在同一台ec2上
sudo ./bin/startup.sh
tail -f logs/manager.log

登陆 http://mydomain.cc:8080/ admin admin
添加 zookeeper
127.0.0.1:2181;

安装node

sudo mkdir -p /data/app/node
sudo tar zxvf node.deployer-4.2.13.tar.gz -C /data/app/node
cd /data/app/node

登陆 http://mydomain.cc:8080/ admin admin
添加node
机器名称 cntop
机器IP 172.31.8.93 此处应该填写内部局域网IP
机器端口 2088

外部IP mydomain.cc

sudo vi conf/nid
填写内容 1

启动ndoe
sudo ./bin/startup.sh
tail -f logs/node/node.log

配置一个单向同步

视频教程

http://www.tudou.com/programs/view/Q-qnCg7d-ew

快速预览

https://github.com/alibaba/otter/wiki/QuickStart

操作步骤:

  1. 添加数据库 ok
    a. 源库 jdbc:mysql://[rds-publicdns-cn]:3306
    b. 目标库 jdbc:mysql://[rds-publicdns-sg]:3306
  2. 添加canal ok
    a. 提供数据库ip信息 [rds-publicdns-sg]:3306;

  3. 添加同步表信息 ok

CREATE TABLE sc.example (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(32) COLLATE utf8_bin DEFAULT NULL ,
PRIMARY KEY (ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

insert into sc.example(id,name) values(null,’hello’);

a. 源数据表 sc.example
b. 目标数据表 sc.example

  1. 添加channel 此处名称最好用test
  2. 添加pipeline 此处名称最好用test
    a. 选择node节点
    b. 选择canal
  3. 添加同步映射规则
    a. 定义源表和目标表的同步关系
  4. 启动
  5. 测试数据

参考文档 http://blog.csdn.net/kindy1022/article/details/40380299
配置一个单向同步 https://github.com/alibaba/otter/wiki/QuickStart

效果不错