shareplex是Quest公司出品的软件,专门用来做Oracle数据库之间的同步,他的原理是通过解析Oracle的redo log,然后解析成SQL语句同步到其他的数据库中,它最大的好处在于,同步时目标数据库可以读写。类似shareplex的软件有很多,比如国内的厂商 DSG,他们虽然实现的细节上有差异,但是基本原理都是一样的。

我很奇怪Oracle为什么一直不推出自己的解决方案,据Oracle的顾问说,他们从来没有将redo log的格式公开给其他任何一个公司,包括Quest公司(但我对此表示怀疑,因为Oracle logical standby据说就是Quest给OEM的)。Oracle从10g开始,推出了自己的产品Stream,但是目前我们对其并不看好,虽然redo的格式Oracle最清楚,但是要形成一个成熟的产品还有很长的路要走,毕竟还没有经过大规模应用的检验。

我们同样面临很多数据同步的问题,通常的做法是:用trigger记录变化,然后通过程序定期同步数据。但是这种方法需要在数据库中建立大量的trigger,严重影响性能,且实时性很差。

去年部门来了一位对Oracle internal和C语言很精通的同事范鑫,我们也有想法自己做Oracle redo解析。我们的目标很简单,并不是要做一个类似shareplex这种大而全的商业软件,而是通过Oracle redo解析出变化的PK,将其记录到数据库(MySQL)或者文件中,然后程序根据这些PK再去同步数据(其实可以看成是替换了数据库中用来记录变化的 trigger)。因为目标简单,通过大半年的努力,现在已经在数据仓库得到了应用。原来数据仓库抽取数据必须依赖于每个表上的修改时间字段,非常不可靠,而且每天只能取一次。现在通过redo解析(可以解析online redo),可以基本做到准实时同步。解决了多年困扰数据仓库的数据抽取问题。

这套系统我们还在不断的完善中,包括DDL的支持,CLOB等特殊数据类型,直接SQL解析,并行apply等等。接下来,我们要将其逐步应用到数据库站点之间的同步上。不仅如此,这套系统给我们更多的遐想,包括Oracle和MySQL数据库的数据同步,Oracle与搜索引擎,memcache 之间的数据同步等等。

地球人都知道我们“不差钱”,那为啥不用成熟的商业软件,自己费半天劲做的能比shareplex好?就象我们自己用PC机搭建的山寨存储,可能比某些公司用跳楼价卖给我们的存储还要贵。有些人说:让专业的人做专业的事,言下之意,DBA就应该只管好数据库。我承认山寨存储永远也做不到象 EMC那样专业,自己的redo解析工具肯定不会比shareplex更强大。我们也没想过要做一个东西来替代它们,我们的目标是适用于我们自己的环境,简单可靠,而且技术掌握在自己手中有很大的灵活性,比如redo解析工具加以修改就可以演化出很多小工具,给DBA的工作带来了便利。另一方面,除了结果,我们更看重创新的过程,如果连想都不敢想,创新从何谈起。

通过这个Oracle redo解析的工具和一系列同步的应用程序,我们就可以搭建一个山寨版的Oracle数据库同步方案。”能解决问题的方案就是好方案,就是有技术含量的方案“,我现在非常推崇用简单的技术搭建复杂的系统,用搭积木的方式解决工作中的问题,请各位大牛不要总拿技术含量说事。

在这个项目中,我只是个旁观者,从最初的怀疑态度到现在的坚定支持者,我的观点发生了很大的改变。感谢大师,感谢范鑫,感谢团队的共同努力,让不可能成为可能,而不是总停留在想法的阶段。

借用发哥一句话:成功?我才刚上路呢。

再见shareplex相关推荐

  1. 荣耀30pro系统_荣耀30 pro:正式再见!

    但随着市场竞争加剧,最近荣耀在价格上再次妥协,也是为了给新机开始让步,马上就是荣耀V40系列的发布会了,迭代荣耀30 pro+也不再坚挺,笔者从第三方平台上看到数据,荣耀30pro+这款手机大降520 ...

  2. 再见了,Python!!

    结合我最近这些年的 Python 学习.开发经验,发现近90%的程序员在学 Python 时都会遇到下面这3个问题: 1.想学Python,但不知从何学起,应用方向太多了也不知道该选择什么方向... ...

  3. 再见,Python!

    结合我最近这些年的 Python 学习.开发经验,发现近90%的程序员在学 Python 时都会遇到下面这3个问题: 1.想学Python,但不知从何学起,应用方向太多了也不知道该选择什么方向... ...

  4. 再见 Python,Hello Julia!

    作者 | Rhea Moutafis 译者 | 苏本如,责编 | 夕颜 头图 | CSDN 下载自视觉中国 出品 | CSDN(ID:CSDNnews) 随着Python的停滞不前,一个新的热门竞争对 ...

  5. Python程序员Debug利器,和Print说再见 | 技术头条

    整理 | Rachel 责编 | Jane 出品 | Python大本营(id:pythonnews) [导语]程序员每日都在和 debug 相伴.新手程序员需要学习的 debug 手段复杂多样,设置 ...

  6. 向iOS越狱彻底说再见!

    老牌第三方软件商店 Cydia 关闭在即,iPhone 越狱时代又见落日归途? 作者 | 仲培艺 出品 | CSDN Cydia 线上商店是针对完成越狱的 iOS 设备的一种破解软件,在越狱过程中被装 ...

  7. 再见,Eclipse。

    以下文章来源方志朋的博客,回复"666"获面试宝典 来源:cnblogs.com/ouyida3/p/9901312.html 使用了eclipse10年之后,我终于投向了IDEA ...

  8. 今生不再见, VS Code !

    参考链接:github.blog/2020-05-06-new-from-satellite-2020-github-codespaces-github-discussions-securing-co ...

  9. 阿里某员工:年终奖到手,再见996

    本文来自:程序员大咖 你的年终奖发了吗? 最近一段时间,这句话可能成了大家见面互相问候的口头禅. 既然名为年终奖,往往意味着对你上一年度工作的总结和奖励.大多数情况下都是会在年底或者1.2月份发放. ...

  10. win10和win7游戏测试软件,是时候和Win7说再见了!Win10游戏性能最多领先50%

    原标题:是时候和Win7说再见了!Win10游戏性能最多领先50% 微软已于今年初彻底放弃支持Windows 7操作系统,Windows 10的市场占有率也节节攀升,但仍有很多用户顽固坚守在Windo ...

最新文章

  1. C 语言字符串分割函数 p = strtok(NULL, );
  2. 远离这样的管理层:靠加班、靠团建、靠个人
  3. 使用 ale.js 制作一个小而美的表格编辑器(3)
  4. Java学习笔记26
  5. 计算机网络基础 — 网络的类型
  6. Django多进程中的查询错乱问题以及mysql gone away问题
  7. C语言再学习--关键字
  8. web服务器获取项目路径问题,读取web项目properties文件路径 解决tomcat服务器找不到properties路径问题...
  9. w10计算机运行特别卡,电脑卡是什么问题?导致Win10正式版卡顿的原因及解决方法...
  10. mybatis分页插件pageHelper简单实用
  11. Python-3.7.0
  12. php多图片上传到数组,input type=file多图片上传 原生html传递的数组集合
  13. 转载:28个Unix/Linux的命令行神器
  14. 女方妈妈和男方爸爸这样告诉即将结婚的儿女,写的真好,希望每个人都可以认真的把它看完...
  15. 程序员薪资怎么论高级还是初级_和程序员一样高薪,却过着清闲生活,测试员什么人都可做吗?...
  16. Qt 使用vs调试的方法
  17. 融360第三季度营收4.44亿 营销费用占比大幅降低
  18. [精简整理]疏通中国历史脉络——“隋、唐(五代十国)”篇
  19. 试用期程序员应该了解的事儿
  20. 很久之前写个密码生成工具,可定制。

热门文章

  1. vue中表格统计金额,前面设置美元符号,并设置颜色
  2. 胖男孩麦克正如我们所知的_正如我们所知,智能合约将如何改变网络?
  3. 森林防火火灾漫延算法 火灾推演算法分析 火灾蔓延范围计算方法 森林火灾边界漫延计算方法
  4. 计算机辅助化学教育,在计算机辅助下的化学教学_计算机辅助制造
  5. 以讹传讹的小故事大道理
  6. 思科二层冗余技术对比---PortChannel/StackWise/VSS/vPC
  7. 优秀开源项目之二:流媒体直播系统Open Broadcaster Software
  8. python跳一跳编程构造_Python玩“跳一跳” iOS+Win 硬件实现
  9. Nginx 负载均衡演示之 upstream 参数、 location 参数等示例说明
  10. python3 [入门基础实战] 爬虫入门之刷博客浏览量