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


配置文件參考如下

[mysqld]

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

[mysqld_safe]

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.cfg zoo.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 同步即可

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM