阿里巴巴開源專案:阿里巴巴去Oracle資料遷移同步工具
背景
08年左右,阿里巴巴開始嘗試MySQL的相關研究,並開發了基於MySQL分庫分表技術的相關產品,Cobar/TDDL(目前為阿里雲DRDS產品),解決了單機Oracle無法滿足的擴充套件性問題,當時也掀起一股去IOE專案的浪潮,愚公這專案因此而誕生,其要解決的目標就是幫助使用者完成從Oracle資料遷移到MySQL上,完成去IOE的第一步.
專案介紹
名稱: yugong
譯意: 愚公移山
語言: 純java開發
定位: 資料庫遷移 (目前主要支援oracle -> mysql/DRDS)
專案介紹
整個資料遷移過程,分為兩部分:
- 全量遷移
- 增量遷移
過程描述:
- 增量資料收集 (建立oracle表的增量物化檢視)
- 進行全量複製
- 進行增量複製 (可並行進行資料校驗)
- 原庫停寫,切到新庫
架構
說明:
-
一個Jvm Container對應多個instance,每個instance對應於一張表的遷移任務
- instance分為三部分
a. extractor (從源資料庫上提取資料,可分為全量/增量實現)
b. translator (將源庫上的資料按照目標庫的需求進行自定義轉化)
c. applier (將資料更新到目標庫,可分為全量/增量/對比的實現)
方案設計
全量方案
業界常用的全量方案有:
- 資料檔案匯入/匯出,比如EXPDP/IMPDP, mysqldump/source, xtrabackup等
- ETL資料匯入/匯出,主要原理為使用JDBC資料查詢介面
yugong在專案設計之初考慮去IOE資料遷移的靈活性和自定義能力,最終選擇的方案為基於JDBC介面遍歷資料.
相比於資料檔案匯入/匯出,其優點:
- 靈活資料同步
- 支援異構資料
- 實現相對簡單
缺點:
- 全量拉取需要配合增量使用,會有部分資料重複同步
- 效能和影響,一次性全量拉取,如果持續時間過長,如果此時資料庫變更過多,會導致segment過大
增量方案
業界常用的增量方案有:
- 基於時間戳定時dump
- oracle日誌檔案,比如LogMiner,OGG
- oracle CDC(Change Data Capture)
- oracle trigger機制,比如DataBus , SymmetricDS
- oracle 物化檢視(materialized view)
- …
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
相關資料
- yugong簡單介紹ppt : ppt
- 分散式關係型資料庫服務DRDS (前身為阿里巴巴公司的Cobar/TDDL的演進版本, 基本原理為MySQL分庫分表)
問題反饋
- qq交流群: 537157866
- 郵件交流: jianghang115@gmail.com
- 新浪微博: agapple0002
- 報告issue:issues
相關文章
- 阿里巴巴,排行前10的開源專案!阿里
- Redis資料遷移同步工具(redis-shake)Redis
- oracle 資料檔案遷移Oracle
- oracle資料檔案遷移Oracle
- 阿里巴巴26個屌炸天的開源專案阿里
- Oracle_遷移資料檔案Oracle
- MongoDB 資料遷移和同步MongoDB
- ORACLE 資料遷移Oracle
- Alibaba 資料庫遷移開源工具 Datax 安裝和使用資料庫開源工具
- 阿里巴巴開源專案TAC——新的服務端開發模式嘗試阿里服務端模式
- Oracle 表空間資料檔案遷移Oracle
- ORACLE資料庫遷移Oracle資料庫
- 重磅!阿里巴巴開源首個邊緣計算雲原生專案 OpenYurt阿里
- 【Canal】資料同步的終極解決方案,阿里巴巴開源的Canal框架當之無愧!!阿里框架
- 資料檔案遷移
- 好玩又實用,阿里巴巴開源混沌工程工具 ChaosBlade阿里
- 2018年阿里巴巴關於Java重要開源專案彙總阿里Java
- Oracle資料庫資料遷移流程Oracle資料庫
- AWS RDS Oracle資料遷移Oracle
- oracle遷移資料經驗Oracle
- Oracle資料遷移參考Oracle
- MySQL 資料遷移Oracle工作MySqlOracle
- 阿里巴巴雲原生大資料運維平臺 SREWorks 正式開源阿里大資料運維
- 阿里巴巴開源路由框架 - ARouter 分析阿里路由框架
- 思否開源專案推介丨DataX Web:簡潔易用的離線資料同步工具Web
- 阿里雲開源 image-syncer 工具,容器映象遷移同步的終極利器阿里
- 如何才能被阿里巴巴開除?首先你得有資格進去阿里
- 資料檔案的遷移
- mysql 備份與遷移 資料同步方法MySql
- (個人)Oracle 表空間資料檔案遷移(轉)Oracle
- 資料庫-oracle-資料庫遷移資料庫Oracle
- 中國科協釋出 2021 開源創新榜,阿里巴巴 2 大開源社群、5 大開源專案上榜阿里
- 拿三個專案,跟你聊聊Oracle資料庫資料遷移的一些經驗Oracle資料庫
- 阿里巴巴圖表庫 Bizcharts 正式開源阿里
- 阿里巴巴開源容器映象加速技術阿里
- Oracle 利用RMAN 完成資料遷移Oracle
- oracle 遷移資料庫到asmOracle資料庫ASM
- 工信部電子標準院授予阿里巴巴9個開源專案“優秀”評級阿里