日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 定时同步数据_MySQL数据同步之otter

發(fā)布時間:2024/4/11 数据库 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 定时同步数据_MySQL数据同步之otter 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、otter介紹

基于日志數(shù)據(jù),用于MySQL或者ORACLE之間準(zhǔn)實時同步數(shù)據(jù)。

用途:

mysql/oracle互相同步

中間表/行記錄同步

二、原理及架構(gòu)圖

otter整體模塊

manager (提供web頁面進行同步管理)

arbitrate (分布式調(diào)度,可跨IDC機房)

node (同步過程setl)

canal / eromanga (同步數(shù)據(jù)來源)

大集群化部署

1個manager集群?+?多個IDC機房node組成

1.?基于Canal,獲取數(shù)據(jù)庫增量日志數(shù)據(jù)。?

2.?典型管理系統(tǒng)架構(gòu),manager(web管理)+node(工作節(jié)點)

????a. manager運行時推送同步配置到node節(jié)點

????b. node節(jié)點將同步狀態(tài)反饋到manager上

3.?基于zookeeper,解決分布式狀態(tài)調(diào)度的,允許多node節(jié)點之間協(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進行配置信息的存儲,所以需要預(yù)先安裝mysql,并初始化otter manager的系統(tǒng)表結(jié)構(gòu)

????a.?安裝mysql,這里不展開,網(wǎng)上一搜一大把

????b.?初始化otter manager系統(tǒng)表:

? 2.?整個otter架構(gòu)依賴了zookeeper進行多節(jié)點調(diào)度,所以需要預(yù)先安裝zookeeper

????a. manager需要在otter.properties中指定一個就近的zookeeper集群機器

## otter manager domain name #修改為正確訪問ip,生成URL使用

? ? otter.domainName = 127.0.0.1????

? ? ## otter manager http port?otter.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

#zk地址

otter.zookeeper.cluster.default = 127.0.0.1:2181

訪問:

node安裝

具體安裝詳見:https://github.com/alibaba/otter/wiki/Node_Quickstart

1. otter node會受otter manager進行管理,所以需要預(yù)先安裝otter manager

2.?完成manager安裝后,需要在manager頁面為node定義配置信息,并生一個唯一id.

??a. nid配置?(將環(huán)境準(zhǔn)備中添加機器后獲取到的序號,保存到conf目錄下的nid文件,比如我添加的機器對應(yīng)序號為6)

3.node節(jié)點進行跨機房傳輸時,會使用到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ù)訂閱和消費。

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ù)庫反查?(簡單點說,就是強制反查數(shù)據(jù)庫,從binlog中拿到pk,直接反查對應(yīng)數(shù)據(jù)庫記錄進行同步,回退到幾天前binlog進行消費時避免同步老版本的數(shù)據(jù)時可采用)

基于當(dāng)前日志變更?(基于binlog/redolog解析出來的字段變更值進行同步,不做數(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é)點?????

? ? ? ?b.?選擇canal

5.?添加同步映射規(guī)則????

? ? ? a.?定義源表和目標(biāo)表的同步關(guān)系

?

?6.?啟動

?

7.?測試數(shù)據(jù)

源端插入數(shù)據(jù)

?

簡單的介紹了otter使用,下期我們在看下雙向同步以及canal同步數(shù)據(jù)到es

總結(jié)

以上是生活随笔為你收集整理的mysql 定时同步数据_MySQL数据同步之otter的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。