阿里巴巴開源項目: 阿里巴巴去Oracle數據遷移同步工具

來自: http://itindex.net/detail/55286-阿里巴巴-開源-項目

標簽: 阿里巴巴 開源 項目 | 發表時間:2016-03-05 10:29 | 作者:

出處:http://agapple.iteye.com

背景

08年左右,阿里巴巴開始嘗試MySQL的相關研究,并開發了基于MySQL分庫分表技術的相關產品,Cobar/TDDL(目前為阿里云DRDS產品),解決了單機Oracle無法滿足的擴展性問題,當時也掀起一股去IOE項目的浪潮,愚公這項目因此而誕生,其要解決的目標就是幫助用戶完成從Oracle數據遷移到MySQL上,完成去IOE的第一步.

項目介紹

名稱:   yugong

譯意:   愚公移山

語言:   純java開發

定位:   數據庫遷移 (目前主要支持oracle -> mysql/DRDS)

項目介紹

整個數據遷移過程,分為兩部分:

  1. 全量遷移
  2. 增量遷移

過程描述:

  1. 增量數據收集 (創建oracle表的增量物化視圖)
  2. 進行全量復制
  3. 進行增量復制 (可并行進行數據校驗)
  4. 原庫停寫,切到新庫

架構

說明:

  1. 一個Jvm Container對應多個instance,每個instance對應于一張表的遷移任務

  2.  instance分為三部分
    a.  extractor  (從源數據庫上提取數據,可分為全量/增量實現)
    b.  translator  (將源庫上的數據按照目標庫的需求進行自定義轉化)
    c.  applier  (將數據更新到目標庫,可分為全量/增量/對比的實現)

方案設計

全量方案

業界常用的全量方案有:

  1. 數據文件導入/導出,比如EXPDP/IMPDP, mysqldump/source, xtrabackup等
  2. ETL數據導入/導出,主要原理為使用JDBC數據查詢接口

yugong在項目設計之初考慮去IOE數據遷移的靈活性和自定義能力,最終選擇的方案為基于JDBC接口遍歷數據.

相比于數據文件導入/導出,其優點:

  • 靈活數據同步
  • 支持異構數據
  • 實現相對簡單

缺點:

  • 全量拉取需要配合增量使用,會有部分數據重復同步
  • 性能和影響,一次性全量拉取,如果持續時間過長,如果此時數據庫變更過多,會導致segment過大

增量方案

業界常用的增量方案有:

  1. 基于時間戳定時dump
  2. oracle日志文件,比如LogMiner,OGG
  3. oracle CDC(Change Data Capture)
  4. oracle trigger機制,比如DataBus , SymmetricDS
  5. oracle 物化視圖(materialized view)
  6. ...

yugong在項目設計之初考慮去IOE數據遷移的靈活性,支持多種oracle版本,同時為降低DBA的運維成本,最終選擇oracle物化視圖作為我們的增量方案.

相比于其他,物化視圖方案其優點:

  • 原理簡單,方便理解和學習,用戶可以理解為一種固化的簡易trigger模式
  • 運維簡單,DBA一次賬戶授權后,程序可按需create一張物化視圖表即可完成增量訂閱
  • 相對透明,不需要像時間戳sql掃描依賴數據庫表設計,也不需要關注oracle版本和服務器存儲等

缺點:

  • 性能和影響,類似于trigger機制會對源庫的數據寫入造成一定的性能影響. 

QuickStart

See the page for quick start: QuickStart

AdminGuide

See the page for admin deploy guide: AdminGuide

Performance

See the page for yugong performance : Performance

相關資料

  1. yugong簡單介紹ppt :   ppt
  2. 分布式關系型數據庫服務DRDS  (前身為阿里巴巴公司的Cobar/TDDL的演進版本, 基本原理為MySQL分庫分表)

問題反饋

  1. qq交流群: 537157866
  2. 郵件交流: jianghang115@gmail.com
  3. 新浪微博: agapple0002
  4. 報告issue: issues

已有 0 人發表留言,猛擊->> 這里 <<-參與討論

ITeye推薦

</div> </div>

 本文由用戶 JaiFay 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!