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. 如何用burp抓取手机的流量_用企业微信SCRM如何搭建流量新体系
  2. OpenCV检测图像轮廓
  3. 如何防止android软件被反编译,破解盗版
  4. python写表格_python写入表格
  5. Java中数据类型的取值范围
  6. php测试插入,php – 使用Symfony测试数据库插入
  7. Overview of ISA and TMG Networking and ISA Networking Case Study (Part 2)
  8. 计算机专业动漫设计毕业论文,计算机动漫设计与制作专业毕业论文26850.doc
  9. windows 安装tomcat 7
  10. C++---vector与list之间的区别
  11. 20200331:每日温度(leetcode739)
  12. VIM和sed 替换字符串方法
  13. Java枚举类的使用说明
  14. 微信公众号之免登陆快速入门
  15. 无法激活服务,因为它不支持 ASP.NET 兼容性
  16. docker安装踩坑
  17. Python环境下数据处理常用命令
  18. bpmn-js汉化(将元素提示语进行汉化)
  19. Task01:熟悉新闻推荐系统的基本流程(代码复现)
  20. jquery获取当前时间戳的正确时间

热门文章

  1. 2021年11月视频行业用户洞察
  2. 解决阿里云oss 图片跨域问题
  3. 10大免费FLV播放器下载[转]
  4. 北大人工智能前沿讲座--第二讲 嵌入式人工智能
  5. python实现下载小说并保存在本地
  6. 程序员因接外包坐牢 456 天!两万字长文揭露心酸真实经历
  7. KGB知识图谱完成金融行业的信息抽取工作
  8. 单个html页面面包屑,充分利用网页设计中的面包屑
  9. 【EduCoder答案】循环结构程序设计1
  10. vue 判断页面是首次加载还是刷新