阿里巴巴开源项目: 阿里巴巴去Oracle数据迁移同步工具

标签: 阿里巴巴 开源 项目 | 发表时间: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推荐



相关 [阿里巴巴 开源 项目] 推荐:

阿里巴巴开源项目: 阿里巴巴去Oracle数据迁移同步工具

- - agapple
   08年左右,阿里巴巴开始尝试MySQL的相关研究,并开发了基于MySQL分库分表技术的相关产品,Cobar/TDDL(目前为阿里云DRDS产品),解决了单机Oracle无法满足的扩展性问题,当时也掀起一股去IOE项目的浪潮,愚公这项目因此而诞生,其要解决的目标就是帮助用户完成从Oracle数据迁移到MySQL上,完成去IOE的第一步. .

重磅!阿里巴巴正式开源全球化OpenMessaging和ApsaraCache项目

- -
10月14日,在2017杭州·云栖大会之开源技术峰会上,阿里巴巴正式发布了全球化OpenMessaging和ApsaraCache两个开源项目,并宣布与GitHub、Hashicorp两家公司成为技术合作伙伴. 此前,阿里巴巴捐赠开源的RocketMQ已被Apache基金会接纳为全球顶级项目,此番动作体现阿里巴巴在全球开源业界的引领地位.

阿里巴巴开源项目:分布式数据库同步系统otter(解决中美异地机房)

- - agapple
   阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求,同时为了提升用户体验,整个机房的架构为双A,两边均可写,由此诞生了otter这样一个产品.    otter第一版本可追溯到04~05年,此次外部开源的版本为第4版,开发时间从2011年7月份一直持续到现在,目前阿里巴巴B2B内部的本地/异地机房的同步需求基本全上了otte4.

阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅&消费

- - zzm
   早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求. 不过早期的数据库同步业务,主要是基于trigger的方式获取增 量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此 开启了一段新纪元.

阿里巴巴Dubbo分布式服务框架已开源

- tangfl - ITeye论坛最新精华讨论帖
Serving services with invocations everyday, Dubbo becomes the key part of Alibaba's SOA solution and has been deployed to the whole alibaba.com family:.

阿里巴巴的零知识证明

- 见涛 - 科学松鼠会
战争中你被俘了,敌人拷问你情报. 你是这么想的:如果我把情报都告诉他们,他们就会认为我没有价值了,就会杀了我省粮食,但如果我死活不说,他们也会认为我没有价值而杀了我. 怎样才能做到既让他们确信我知道情报,但又一丁点情报也不泄露呢. 这的确是一个令人纠结的问题,但阿里巴巴想了一个好办法,当强盗向他拷问打开山洞石门的咒语时,他对强盗说:“你们离我一箭之地,用弓箭指着我,你们举起右手我就念咒语打开石门,举起左手我就念咒语关上石门,如果我做不到或逃跑,你们就用弓箭射死我.

[原]阿里巴巴B2B搜索学习

- - 文武天下
主搜索:商品搜索、商家搜索、采购搜索、app搜索. 行业搜索:淘货源、淘工厂、聚好货、主题市场、品牌馆等. 由于用户多,需求强烈,收益大,所以功能、场景、架构做到极致高效. 代码复用性强:基础通用功能进行组件抽象化. 组件通用性好:一些组件或者组件进行组合的服务,适用更多场景,支持更多功能. 转化效果好:算法做的比较深入、细致.

专访阿里巴巴研究员赵海平:从Facebook到阿里巴巴

- - 博客园_新闻
赵海平,2007 年加入只有不到 50 个软件工程师的 Facebook,致力于软件性能和架构分析,在此期间创建了 HipHop 项目,重新编写和实现 PHP 语言,使其速度提高 5 到 6 倍,为公司节约数十亿美元. HipHop 项目之后,致力于“用异步处理来优化分布式系统”的设计理念中,并为此做了多项分布式数据库的优化研究,在 PHP 语言中加入了 yield 和 generator 的新功能,来帮助日趋复杂的 Facebook 网页设计.

阿里巴巴高层震动的扯淡

- chenqj - It Talks--上海魏武挥的博客
这是真扯淡了,完全就是写博客,没有什么中心思想,想扯哪里扯哪里. 国内外有两家公司,遥相呼应地都非常强调所谓“价值观”,外有谷歌,内有阿里. 谷歌上市时,可以挑战华尔街的规矩,阿里上市时,则创下当时一批IPO的新高. 故而,这两家公司都是一时的翘楚,属于“从优秀到卓越”的公司. 公司是非常象一个宗教组织的——或者这么说,“好”公司都得象宗教组织.

阿里巴巴集团股权结构图

- telefan - Finacial Planet China 中国投资专家博客集
雅虎SEC文件原文是:“为了尽快获得一个重要牌照,阿里巴巴集团旗下在线支付公司支付宝已经被重组,其100%流通股现由阿里巴巴集团CEO马云控股的一家中国公司持有. 阿里巴巴集团管理层、主要股东雅虎和软银参与了有关支付宝重组条款的详细讨论. 收起 | 查看大图 | 向左转 向右转.