1 環境說明:java
本機ip 192.168.8.3node
虛擬機1 ip 192.168.8.5mysql
虛擬機2 ip 192.168.8.6web
虛擬機採起橋接模式sql
虛擬機系統爲CentOS 2.6.32-279.el6.i686數據庫
java版本 1.6.0-24dom
mysql版本 5.1.61-log測試
2 虛擬機8.5搭建otter編碼
2.0配置固定ip和修改hosturl
2.0.1 虛擬機8.5 ip爲192.168.8.5
2.0.2 修改host
vi /etc/hosts
2.1 關閉防火牆
root用戶 service iptables stop
2.2 安裝mysql
2.2.1 用戶爲 root,密碼爲hello
2.2.2 修改mysql的配置文件
vi /etc/my.cnf
其中,log-bin爲打開mysql的binlog二進制日誌
binlog-format爲列模式
server-id須要保證不一樣的數據庫的id不相同,具備惟一性
datadir爲數據存儲的文件夾,沒有的話須要進行建立
default-character-set=utf8,爲設置mysql的默認字符集爲utf-8
2.2.2 初始化otter數據庫,初始化sql爲文件夾中的 otter-manager-schema.sql
2.2.3 搭建雙A模式,須要初始化數據庫retl,初始化sql爲文件夾中的otter-manager-retl.sql。
2.2.4 新建個測試庫 test,新建一張測試表test
create table test(id int(11),name varchar(32));
2.3 安裝jdk,並配置環境變量,otter推薦使用1.6.5,說是穩定
2.4 安裝 aria2(node須要aria2c的支持)
2.4.1 下載壓縮包
2.4.2 tar –zxvf aria2-1.17.1.tar.gz
2.4.3 mv aria2-1.17.1 aria2
2.4.4 mv aria2 /usr/local
2.4.5 cd /usr/local/aria2
2.4.6 ./configure
2.4.7 make
2.4.8 make install
2.5 安裝node
2.5.1 下載壓縮包
2.5.2 mkdir node
2.5.3 mv node.deployer-4.2.11.tar.gz ./node
2.5.4 tar –zxvf node.deployer-4.2.11.tar.gz
2.5.5 mv node.deployer-4.2.11.tar.gz ../
2.5.6 mv ../node /usr/local
2.5.7 cd /usr/local/node
2.5.8 manager安裝成功以後,在機器管理/node管理中添加上本機的node以後,能夠看到這個node對應的序號
上圖中 8.5虛擬機的node序號爲1,8.6虛擬機的node序號爲2
2.5.9 進入node的conf文件夾
2.5.10 echo 1 > nid
node的日誌在 logs/node/node.log
2.6 安裝zookeeper
2.6.1 下載壓縮包
2.6.2 tar –zxvf zookeeper-3.4.5-cdh4.3.0.tar.gz
2.6.3 mv zookeeper-3.4.5-cdh4.3.0 zookeeper
2.6.4 cd ./zookeeper /usr/local
2.6.5 cd /usr/local/zookeeper/conf
2.6.6 cp zoo_sample.cfg zoo.cfg
2.6.7 vi zoo.cfg
文件中 clientPort爲zookeeper的端口號
2.6.8 cd ../bin
zookeeper啓動的時候打印日誌到bin目錄下的zookeeper.out,若是不習慣,能夠修改成打印到log日誌,修改步驟以下
a 修改conf/log4j.properties
zookeeper.root.logger=INFO, CONSOLE
改爲
zookeeper.root.logger=INFO,ROLLINGFILE
b 修改bin/zkEvn.sh文件,
if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
ZOO_LOG4J_PROP="INFO,CONSOLE"
fi
改爲
if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
fi
c 這樣再啓動zkSever.sh start的時候 就會生成log4j.properties配置的中設定的zookeeper.log文件。
2.6.9 啓動zookeeper
./zkServer.sh start
中止命令爲 ./zkServer.sh stop
2.7 安裝manager(須要zookeeper的支持)
2.7.1 下載manager.deployer-4.2.11.tar.gz
2.7.2 mkdir manager
2.7.3 mv manager.deployer-4.2.11.tar.gz ./manager
2.7.4 cd ./manager
2.7.5 tar –zxvf manager.deployer-4.2.11.tar.gz
2.7.6 mv manager.deployer-4.2.11.tar.gz ../
2.7.7 cd ../
2.7.8 mv ./manager /usr/local
2.7.9 cd /usr/local/manager/conf
2.7.10 vi otter.properties
a otter.domaniName 能夠寫本機hostname,可是要修改/etc/hosts,保證hostname映射爲本機的固定ip
b otter.port 爲manager管理端的端口,即web工程的端口
c otter.database.driver.url爲mysql地址和數據庫實例,寫本機ip而不是127.0.0.1,寫127.0.0.1,8.6虛擬機訪問不到
d otter.database.driver.username爲數據庫的用戶名
e otter.database.driver.password 爲數據庫的密碼
f otter.communication.manager.port爲manager的服務端口
g otter.zookeeper.cluster.default爲zookeeper的地址,包括本機ip和端口,這個端口就是zookeeper的conf中的zoo.cfg中的clientPort
2.7.11 啓動manager
./bin/startup.sh
若是文件夾中有otter.pid文件,說明manage已經啓動或者上次沒有關閉,先執行一次 ./stop.sh ,就能夠啓動起來了
manager的日誌在 logs/manager.log
3 虛擬機8.6安裝數據庫和node
3.0 設置固定ip和修改hosts
3.1 安裝mysql
配置/etc/my.cnf
注意server-id號和虛擬機8.5的mysql的server-id不一樣
3.2 安裝node
3.3 配置固定ip
4 操做步驟
4.1 192.168.8.5虛擬機
4.1.1 關閉防火牆
service iptables stop
4.1.2 root開啓mysql數據庫
能夠經過如下操做本地登錄mysql數據庫
4.1.3 開啓zookeeper
4.1.4 開啓manager
能夠經過 tail –f ../logs/manager.log 經過日誌查看查看開啓狀態
4.1.5 開啓node
經過如下操做查看node開啓狀態
4.2 192.168.8.6 虛擬機
4.2.1 root用戶關閉防火牆
4.2.2 啓動mysql數據庫
使用如下命令本地鏈接數據庫查看
4.2.3 啓動node
4.3 otter配置(虛擬機192.168.8.5中進行操做)
4.3.1 登錄 http://192.168.8.5:8080/login.htm
用戶名:admin
密碼: admin
4.3.2 配置zookeeper管理 (機器管理/zookeeper管理)
zookeeper集羣填寫的是你啓動zookeeper的機器的ip地址,端口號爲zookeeper/conf/配置的clientPort
4.3.3 配置node
配置完成後,會在列表中顯示,若是node節點已經正常啓動,列表中對應node的狀態爲已啓動
4.3.4 配置數據源(配置管理/數據源配置)
若是數據庫url配置對了,用戶名密碼正確,數據庫默認編碼爲utf8,則能成功驗證數據庫
4.3.5 配置表
schema name爲數據庫名稱
table name爲表名稱,若是要作全庫的同步,能夠用 .* 表示
添加完的表在下圖中列表中
4.3.6 配置canal(配置管理/canal配置)
填寫 canal名稱,數據庫地址,帳戶,密碼,位點信息,其中,位點信息格式複製例子,journalName 、position 和 timestamp能夠經過對應數據庫的執行相應sql取得
4.3.7 配置同步管理
4.3.8 配置Pipeline(點擊配置好的Channel名稱進入)
Pipeline名稱能夠隨便取
select機器和load機器選項選擇同一個node節點,採起就近原則,8.5的虛擬機向8.6同步數據庫,選擇8.5節點,8.6虛擬機向8.5同步數據庫選擇8.6節點
選擇Canal,8.5向8.6同步,選擇5>>>6(double) Canal;8.6向8.5同步,選擇6>>>5(double)
4.3.9 配置關係映射表
源數據表和目標數據表選擇,選擇的是數據表配置的某個項。
4.3.10 調整設置
雙A互備,就是兩個單向的同步
其中,一個設置爲主站點,另外一個設置爲非主站點
在高級設置中,一個設置爲支持ddl同步,一個設置爲不支持ddl同步,緣由是一個Channel中只能有一個ddl,要不會衝突
配置完以後,點擊Channel管理,選擇對應的Channel,點擊啓動
運行狀態變成運行。
配置完成
5 驗證效果
5.1 虛擬機8.5中插入一條記錄
8.6虛擬機mysql
測試反向8.6向8.5同步
8.5 mysql
5.2 如今驗證出效果 :
5.2.1不管channel是否運行,點擊推送,均可以同步兩個數據庫的數據
5.2.2 channel配置的兩個數據庫,一個數據庫中止,channel會掛起,點擊推送後恢復正常運行