快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

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

请联系QQ:1793040 索取软件

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. oracleCDC(Change Data Capture)
  4. oracle trigger机制,比如DataBus ,SymmetricDS
  5. oracle 物化视图(materialized view)

yugong在项目设计之初考虑去IOE数据迁移的灵活性,支持多种oracle版本,同时为降低DBA的运维成本,最终选择oracle物化视图作为我们的增量方案.

相比于其他,物化视图方案其优点:

  • 原理简单,方便理解和学习,用户可以理解为一种固化的简易trigger模式
  • 运维简单,DBA一次账户授权后,程序可按需create一张物化视图表即可完成增量订阅
  • 相对透明,不需要像时间戳sql扫描依赖数据库表设计,也不需要关注oracle版本和服务器存储等

缺点:

  • 性能和影响,类似于trigger机制会对源库的数据写入造成一定的性能影响.

See the page for quick start: QuickStart

See the page for admin deploy guide:AdminGuide

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

相关推荐

咨询软件
 
QQ在线咨询
售前咨询热线
QQ1793040