cjcmay 发表于 2017-2-28 10:35:02

otter配置详解

  说明 : 为了 mysql 中国、美国、欧洲数据库实时同步
  文档和地址




项目源码   https://github.com/alibaba/otter
发布的版本https://github.com/alibaba/otter/releases
文档 https://github.com/alibaba/otter/wiki/Faq
说明
mysql 可以单独为一个服务器上
node节点也可单独在一个服务器上
zookeeper 也可单独在一个服务器上
manager也可单独在一个服务器上
启动顺序
  1 ) mysql
  2 ) zookeeper
  3 ) manager  
      otter.properties 中 otter.zookeeper.cluster.default
      配置zookeeper集群 离manager最近的一个 zookeeper server地址:port
  4 ) node
例子部署图
    
  配置前准备阶段
  1. ) JDK必须 1.6以上版本.
    Linux 下载 rpm 包执行 rpm -ivh 包名.rpm
    Ubuntu 下载 tar.gz执行压缩 tar -zxvf 包名.tar.gz
        Ubuntu 需配置环境变量
        



sudo gedit ~/.profile
在文件末尾加上
export JAVA_HOME=jdk文件路径
export JRE_HOME=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 ~/.profile
//查看java版本
java -version
  2. ) 安装mysql 5.1 > 以上版本.  
  注意:mysql 5.6 安装后 密码初始随机 在 root/ .mysql_secret 文件里     



查看隐藏文件 ll –a

my.cnf文件在 /usr/my.cnf目录了, 不在 /etc/my.cnf

配置文件参考如下

  
  datadir=/var/lib/mysql
  socket=/var/lib/mysql/mysql.sock
  symbolic-links=0
  ##最大连接数
  max_connections=1000
  ##服务器字符编码
  character_set_server=utf8
  ##开启log-bin row
  log-bin=mysql-bin
  binlog_format='row'
  ##日志默认保存3天
  expire_logs_days=3
  ##必须配置,每个数据库配置的值不一样
  server-id=1
  
  log-error=/var/log/mysqld.log
  pid-file=/var/run/mysqld/mysqld.pid
  3. ) 源数据库已开启binlog,并且binlog_format为ROW.



mysql> show variables like '%binlog_format%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW   |
+---------------+-------+
  安装aria2   (在 node 节点服务器上安装)
  下载地址http://sourceforge.net/projects/aria2/files/stable/



需要g++如没有需要安装
yum install gcc-c++ libstdc++-devel
下载aria2 并解压 之后编译 配置环境 例子如下
mkdir /usr/local/aria2
./configure--prefix=/usr/local/aria2
make && make install
vi /etc/profile
PATH=$PATH:/usr/local/aria2/bin
source /etc/profile

测试是否安装成功
aria2c 命令
  安装zookeeper 并启动



参考地址http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html#sc_RunningReplicatedZooKeeper
      http://blog.csdn.net/shirdrn/article/details/7183503#主机名称到IP地址映射配置
  192.168.0.179 slave-01
  192.168.0.178   slave-02
  192.168.0.177   slave-03


配置zookeeper conf文件
cp zoo_sample.cfgzoo.cfg
vi zoo.cfg

修改

  tickTime=2000
dataDir=/home/otter/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2
server.1=slave-01:2888:3888
server.2=slave-02:2888:3888
server.3=slave-03:2888:3888

里面的目录没有 需要自行创建 不然无法启动
启动之前还要配置 host文件
vi /etc/hosts

  192.168.0.179 slave-01
192.168.0.178   slave-02
192.168.0.177   slave-03

启动 zookeeper server
./zkServer.sh start

  zookeeper manager里面查看zookeper需要 nc 如果没有 需要安装(不安装也不影响同步)

yum install nc
(另:配置集群观察者模式在 zoo.cfg 文件中做如下修改
    在需要观察者模式的zookeeper server上
   配置如下
   tickTime=2000
    dataDir=/home/otter/zookeeper/data
    clientPort=2181
    initLimit=5
    syncLimit=2
    peerType=observer
    server.1=slave-01:2888:3888:observer
    server.2=slave-02:2888:3888
    server.3=slave-03:2888:3888
    ##在 slave-01上配置文件如上,slave-01即是观察者模式 不参与选举
)
  解压manager 并启动



conf/目录下 otter.properties
## otter manager domain name
otter.domainName = 192.168.0.100    -- web管理ip和node节点配置的
## 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://localhost:3306/otter
otter.database.driver.username = root
otter.database.driver.password =
## otter communication port
otter.communication.manager.port = 1099
## otter communication pool size
otter.communication.pool.size = 10
## default zookeeper address
otter.zookeeper.cluster.default = 192.168.0.179:2181 ##如果有多个逗号分开,一个集群只需要写离manager最近的一个即可
## default zookeeper sesstion timeout = 60s
otter.zookeeper.sessionTimeout = 60000
## otter arbitrate connect manager config
otter.manager.address = ${otter.domainName}:${otter.communication.manager.port}
## should run in product mode , true/false
otter.manager.productionMode = true
## self-monitor enable or disable
otter.manager.monitor.self.enable = true
## self-montir interval , default 120s
otter.manager.monitor.self.interval = 120
## auto-recovery paused enable or disable
otter.manager.monitor.recovery.paused = true
# manager email user config
otter.manager.monitor.email.host = smtp.gmail.com
otter.manager.monitor.email.username =
otter.manager.monitor.email.password =
otter.manager.monitor.email.stmp.port = 465
  解压node 并启动
   先进入manager中 按如下操作
    机器管理 (菜单)-->> zookeeper管理(选项)(按照提示添加部署好的zookeeper集群)
    图如下
  
    机器管理(菜单) -->> Node管理 (选项)(安装提示添加node节点,)
    图如下
    
    机器端口 2088
    添加成功后 会产生一个 序号 (> 0 整数)
    将此序号写入 node conf目录中
    



echo 序号 > node/conf
  修改配置文件 conf/otter.properties



# otter node root dir
otter.nodeHome = ${user.dir}/../
## otter node dir
otter.htdocs.dir = ${otter.nodeHome}/htdocs
otter.download.dir = ${otter.nodeHome}/download
otter.extend.dir= ${otter.nodeHome}/extend
## default zookeeper sesstion timeout = 60s
otter.zookeeper.sessionTimeout = 60000
## otter communication pool size
otter.communication.pool.size = 10
## otter arbitrate & node connect manager config
## manager管理地址 : port
otter.manager.address = 192.168.0.100:1099

  启动 node 节点
    



./node/bin/startup.sh
  启动成功后能够在manager管理里面看到 添加的node节点 状态 为 “已启动”
    
    接下来在manager里
      1.)配置管理菜单中 依次配置 数据源 、数据表 、canal
      2.)在同步管理菜单中添加 channel(是否开启数据一致性:开启)
         (注意:参数尽量选择默认)
      3.)添加 pipeline (一个channel 只能添加两个 pipeline ,
            两个为双向同步,如果要用DDL同步,一个pipeline开启ddl同步,
            另一个不要开启,且都要开启跳过ddl异常,DryRun模式 不要开启)
      4.)配置 表映射
      5.)在channel管理中开启 channel 同步即可
页: [1]
查看完整版本: otter配置详解