`
michael.softtech
  • 浏览: 208804 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Oracle杂记

 
阅读更多

      好久木有写博客了。罪过罪过,实在是太忙,好在闲余没有白白浪费,Oracle的水平有了一个质的飞跃,越来越喜欢在命令行模式里面直接管理数据库的感觉了。

    

      前段时间参加Velocity China 2012 _ web性能大会,期间接触到了MySql的集群方案,鉴于对Oracle比较熟,就研究了一番RAC。其实RAC就是Oracle的集群方案,基本上做到了两点: 一个是实现了数据库的HA,主要包括数据层面和实例层面,数据层面是通过ASM实现的,实例层面是通过RAC节点实现的(例如两个节点每个都有自己的虚拟IP,这个IP是可以“浮动” 的。当非主节点发现主节点挂掉时,就发起一次Vote,根据Vote结果选举一个新的主节点,新的主节点多了一个新的虚拟IP,也就是原来主节点的虚拟IP,于是客户端请求就转到这里来了). 另一个功能就是实现了实例的负载均衡,使得能够利用多台机器的硬件资源处理能力。当然异地灾备方面还有DataGuard.这个没做太多研究。

 

         同时也研究了一下Oracle的表连接和分区技术。知道了索引在Oracle中的巨大作用,知道了复合索引中的前缀性和选择性。知道了还有分区索引这等逆天的存在。对于SQL的解析有了一定认识。也知道了类似V$Session, V$Activie_session_history(ashrpt.sql), awr.sql等数据库诊断方式,并且基本能看懂执行计划了。

 

         研究分区,自然就想到了分库分表。分库好理解,只是对于分表不是很理解,分表是不是应该一种特殊的分区?因为分区虽然可以指定不同的表空间,但是分表

是可以分在不同的实例上的吧?试着找了一下分库分表框架,发现貌似只有Guzz和阿里的CobarClient可用。改天研究下这两个框架。

         但是分库分表带来一个新的问题,事务的处理。其实随着SOA架构的流行,终归会面临分布式事务的问题。在并发大的情况下,分布式事务由于独特的2阶段提交,会带来很大的问题,比如等待,死锁 ,而且也很慢。所以除非迫不得已,不然一般高并发系统都不会采用类似XA这种分布式事务。

         除了传统的ACID事务模式,还有另外一种事务模式 —— BASE: Basic Available, Soft State, Eventually Consistent . 就我分析下来,如果要采用

Base模式,基本上就只有一种方式比较可行: Best Efforts 1PC + 基于消息的最终一致性,消息是用来重做失败的事务的。当然也可以在设计之初就直接采用异步的方式,这样的话连BestEfforts 1PC 都不需要了,直接通过消息来做—— 不过这样做对消息系统的要求很高,要合理设计消息的处理顺序。

          可惜啊,一直没机会亲自参与到这种大系统的建设过程中去,具体实现也只能靠猜了.....

        

 

分享到:
评论

相关推荐

    oracle杂记.doc

    oracle杂记.doc 这是我个人的总结。 主要是oracle的编程以及体系结构的理解。

    oracle 9i杂记

    《Oracle 9i杂记——探索PLSQL的世界》 Oracle 9i,作为Oracle数据库的一个重要版本,引入了许多新特性和改进,其中PL/SQL(Procedural Language/Structured Query Language)是其核心组成部分,是一种结合了SQL和...

    form开发杂记

    在`Form`开发中,有许多关键点需要注意,这些细节对于创建功能完备且用户友好的应用程序至关重要。以下是一些核心知识点的详细说明: ...理解并熟练运用这些知识点,将有助于构建高效、用户友好的Oracle Forms应用。

    powerdesinger 中文教程资料集合

    6. **powerdesigner杂记.txt**:这可能是用户或专家在使用PowerDesigner过程中积累的经验和技巧,对于解决实际问题有很大帮助。 7. **PowerDesigner 11 使用心得 .txt**:个人使用经验分享,通常包含一些未在官方...

    CDH5.4.7安装部署手册

    #### 六、杂记 - **Namenode和Secondarynamenode的关系**: Namenode是HDFS的核心组成部分,负责管理文件系统的命名空间及客户端对文件的访问。而Secondarynamenode的主要职责是辅助Namenode,它定期合并fsimage文件...

Global site tag (gtag.js) - Google Analytics