mysql otter 数据同步_MySQL数据同步之otter
一、otter介紹
基于日志數(shù)據(jù),用于MySQL或者ORACLE之間準(zhǔn)實(shí)時同步數(shù)據(jù)。
用途:
mysql/oracle互相同步
中間表/行記錄同步
二、原理及架構(gòu)圖
otter整體模塊
manager (提供web頁面進(jìn)行同步管理)
arbitrate (分布式調(diào)度,可跨IDC機(jī)房)
node (同步過程setl)
canal / eromanga (同步數(shù)據(jù)來源)
大集群化部署
1個manager集群+?多個IDC機(jī)房node組成
1.?基于Canal,獲取數(shù)據(jù)庫增量日志數(shù)據(jù)。
2.?典型管理系統(tǒng)架構(gòu),manager(web管理)+node(工作節(jié)點(diǎn))
a. manager運(yùn)行時推送同步配置到node節(jié)點(diǎn)
b. node節(jié)點(diǎn)將同步狀態(tài)反饋到manager上
3.?基于zookeeper,解決分布式狀態(tài)調(diào)度的,允許多node節(jié)點(diǎn)之間協(xié)同工作.
4.目前支持MySQL-->MySQL ?MySQL-->ORACLE等異庫之間同步
三、需要安裝包
https://github.com/alibaba/otter/releases
manager.deployer-4.2.18.tar.gz
node.deployer-4.2.18.tar.gz
(安裝時候可能需要安裝下載工具,下載后編譯安裝https://liquidtelecom.dl.sourceforge.net/project/aria2/stable/aria2-1.19.0/aria2-1.19.0.tar.gz)
canal.deployer-1.1.4.tar.gz
四、安裝簡要步驟
manager安裝
1.otter manager依賴于mysql進(jìn)行配置信息的存儲,所以需要預(yù)先安裝mysql,并初始化otter manager的系統(tǒng)表結(jié)構(gòu)
a.?安裝mysql,這里不展開,網(wǎng)上一搜一大把
b.?初始化otter manager系統(tǒng)表:
2.?整個otter架構(gòu)依賴了zookeeper進(jìn)行多節(jié)點(diǎn)調(diào)度,所以需要預(yù)先安裝zookeeper
a. manager需要在otter.properties中指定一個就近的zookeeper集群機(jī)器
## otter manager domain name #修改為正確訪問ip,生成URL使用
otter.domainName = 127.0.0.1
## otter manager http portotter.port = 8082 #按需調(diào)整默認(rèn)8080
## jetty web config xml otter.jetty = jetty.xml
otter manager database config?,修改為正確數(shù)據(jù)庫信息
otter.database.driver.class.name = com.mysql.jdbc.Driver
otter.database.driver.url = jdbc:mysql://127.0.01:3306/ottermanager
otter.database.driver.username = root
otter.database.driver.password = Dr@.1214
otter.zookeeper.cluster.default = 127.0.0.1:2181
訪問:
node安裝
具體安裝詳見:https://github.com/alibaba/otter/wiki/Node_Quickstart
1. otter node會受otter manager進(jìn)行管理,所以需要預(yù)先安裝otter manager
2.?完成manager安裝后,需要在manager頁面為node定義配置信息,并生一個唯一id.
a. nid配置(將環(huán)境準(zhǔn)備中添加機(jī)器后獲取到的序號,保存到conf目錄下的nid文件,比如我添加的機(jī)器對應(yīng)序號為6)
3.node節(jié)點(diǎn)進(jìn)行跨機(jī)房傳輸時,會使用到HTTP多線程傳輸技術(shù),目前主要依賴了aria2c做為其下載客戶端,后續(xù)會推出java版本.
a. aria2?官方首頁:http://aria2.sourceforge.net/
b.?下載頁面:http://sourceforge.net/projects/aria2/files/stable/
cancal安裝
主要用途是基于?MySQL?數(shù)據(jù)庫增量日志解析,提供增量數(shù)據(jù)訂閱和消費(fèi)。
canal?作為MySQL binlog增量獲取和解析工具,可將變更記錄投遞到MQ系統(tǒng)中,比如Kafka/RocketMQ。也可以直接把數(shù)據(jù)發(fā)送到es hbase等
具體參考:
https://github.com/alibaba/canal
我們配置一個同步任務(wù):
操作步驟:?1. ?添加數(shù)據(jù)庫
a.?源庫?jdbc:mysql://localhost:3306
b.?目標(biāo)庫?jdbc:mysql://localhost:3370
2. ?添加channel
說明:
a.?同步一致性
基于數(shù)據(jù)庫反查?(簡單點(diǎn)說,就是強(qiáng)制反查數(shù)據(jù)庫,從binlog中拿到pk,直接反查對應(yīng)數(shù)據(jù)庫記錄進(jìn)行同步,回退到幾天前binlog進(jìn)行消費(fèi)時避免同步老版本的數(shù)據(jù)時可采用)
基于當(dāng)前日志變更?(基于binlog/redolog解析出來的字段變更值進(jìn)行同步,不做數(shù)據(jù)庫反查,推薦使用)
b.?同步模式
行模式?(兼容otter3的處理方案,改變記錄中的任何一個字段,觸發(fā)整行記錄的數(shù)據(jù)同步,在目標(biāo)庫執(zhí)行merge sql)
列模式?(基于log中的具體變更字段,按需同步)
c.?特殊組合:(同樣支持)
基于數(shù)據(jù)庫反查+列模式
基于當(dāng)前日志變更+行模式
3. ?添加同步表信息
a.?源數(shù)據(jù)表?demo.t_yq
b.?目標(biāo)數(shù)據(jù)表?demo_3370.t_yq
4.?添加pipeline
a.?選擇node節(jié)點(diǎn)
b.?選擇canal
5.?添加同步映射規(guī)則
a.?定義源表和目標(biāo)表的同步關(guān)系
6.?啟動
7.?測試數(shù)據(jù)
源端插入數(shù)據(jù)
簡單的介紹了otter使用,下期我們在看下雙向同步以及canal同步數(shù)據(jù)到es
總結(jié)
以上是生活随笔為你收集整理的mysql otter 数据同步_MySQL数据同步之otter的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “萧瑟生哀听”下一句是什么
- 下一篇: Mysql报错130_mysql 突然报