基于ORACLE日志解析的HA架构

1 19th, 2011 | Posted by jacky | Filed under 大话技术

数据库HA的最基本要求是:1.应用透明切换;2.切换速度快;3.保证数据完整一致。ORACLE数据库的HA方案都要基于共享存储,即shared storage架构,不管是RAC还是Active-Standy方式。Data Guard更多是作为备份和容灾的方案,由于standby数据库在恢复的过程无法打开读写,Standby必须经过switch over之后才可以读写,即便11g提供了Active standby功能,DG并不是特别适合做HA方案,主要原因是:1.需要人工干预,应用不透明;2.切换速度慢,Standby必须经过切换才能读写;3.可能数据丢失,如果采用LGWR同步传输日志,可以保证数据不丢失,但是可能会影响性能。

MySQL在这方面比ORACLE要灵活许多,因为是类似逻辑复制的方式,复制的过程中数据库不仅可读写,而且还可以采用双向复制的模式,通过DB Proxy,可以提供非常灵活的HA方案,见下图:

于是,我们想到让ORACLE借鉴MySQL的方案,采用逻辑复制的方法,通过DB Proxy实现应用透明切换,方案的核心就是ORACLE日志解析与数据同步。采用这种方案的优点:1.应用透明切换;2.切换速度快;3.切换时可能会丢失部分数据。这种方案虽然无法完全保证数据一致性,但是只要日志文件不丢失,数据可以达到最终一致的状态(MySQL也是如此)。对于那些对于一致性要求不高的应用,只要将同步时延控制在一定的范围内,这个方案可以提供很好的灵活性,而且DG依然可以作为备份和容灾的角色存在。

这个方案的最大意义在于:ORACLE数据的HA不再依赖共享存储,存储设备通常都非常昂贵,而目前PC+SSD就可以提供非常高的处理能力,唯一的软肋就是可用性无法保证,如果这个方案可以实现,就可以用PC+SSD取代小型机+存储,真是很令人期待。

当然还需要解决很多问题:1.实时解析日志,减少时延;2.同步变更字段,减少网络传输;3.并行应用,提高应用速度。目前,我们正在努力解决,很快可以看到曙光。敢想敢为,就没有不可能!

–EOF–

标签:
  1. goldengate
    1 19th, 201121:30

    自制GoldenGate?

  2. MKing
    1 20th, 201100:33

    新的方案,总是会有技术风险,同时也是挑战,对PC+SSD,我认为是未来主流的解决方案,所以突破是必须的,相信不久就会看到成果。

  3. jacky
    1 20th, 201109:31

    @goldengate
    可以这么说:)

  4. yimu1023
    1 22nd, 201121:34

    很期待你们的解决方案!PC+SSD可能会为中小型企业解决技术中的存储,性能等关键问题!

  5. yimu1023
    1 22nd, 201121:36

    DRBD+HEARBEAT 在MYSQL大量写的情况中,发挥了容灾的重要作用!

  6. xianhua
    1 23rd, 201120:45

    不错!!!

  7. ArduousBonze
    1 26th, 201111:07

    Hi Jack,

    能否透露下如何学习和解析online及archived redo logs的格式?
    是否有哪些文章或技术doc可以参考?
    比较好奇阿里DBA是如何学会解析redo格式的,也希望学习下!
    多谢指教。

  8. jacky
    1 26th, 201111:16

    @ArduousBonze
    日志的格式,ORACLE是不公开的,全靠自己摸索。我们做这个事,已经花了好几年的时间,现在才逐渐成熟。
    其实,很多人都能够解析日志的部分内容,但是能够应用到实际工作中,目前好象只有我们。

    没什么窍门,全靠自己测试和摸索。

  9. 冬瓜头
    1 27th, 201113:38

    有了像Jacky这样攻关高手,传统存储厂商看来要全面从互联网运营商市场撤退了,必须另找一条出路,Jacky,你看传统存储厂商现在和下一步还能够给互联网运营商提供什么样的产品和方案?SSD单盘?jbod?raid卡?主机端的raid或者卷算法?

  10. jacky
    1 27th, 201115:20

    @冬瓜头
    我们需要开放和简单的方案,黑盒子对我们并不适合。我们需要存储厂商提供基础的设备和服务,然后我们可以利用这些设备搭建解决方案。

  11. 冬瓜头
    1 27th, 201115:33

    嗯,这种“大硬盘”恰恰是存储厂商最不喜欢卖的东西,除了靠走量为主的。。

  12. pioneer.yang
    1 27th, 201115:47

    冬瓜头,也在呀?