许春植(Luocs)
(阿里巴巴高级数据库管理员,7年以上数据库运维管理经验,擅长MySQL、Oracle及MongoDB数据库,目前主要研究并建设MongoDB一套完整的运维体系)
编辑手记:感谢许春植授权独家转载其精华文章,也欢迎读者朋友向我们投稿。
第一篇我们讨论了 MySQL 的高可用和分区解决方案,下面我们来看看 Oracle 在这方面是怎么做的。
凡是 DBA 我估计都听过 Oracle 有非常强大的集群系统 RAC 和容灾系统 DataGuard (简称 DG),但估计极少部分人了解 MAA,MAA 全称 Maximum Availability Architecture,是 Oracle 推出的最高可用性体系结构,其实就是 RAC 和 DG 的结合。
上图中 IDC1 就是一套 RAC,IDC2 也是一套集群,这两套集群通过 DATAGUARD 做成 Priamry 和 Secondary 关系。待 IDC1 机房出现故障的时候,所有业务请求可以切换到 IDC2 机房,继续维持业务的可用性。光看单机房的话就只有一套 RAC 系统,RAC 系统本身也提供高可用以及负载均衡的功能,把其中一个机房的架构放大出来看,如下:
RAC 的 Grid Infrastructure 拥有非常丰富的组件,ASM 和 Clusterware 等等,其中 ASM 是存储的解决方案,而 Clusterware 的 crsd 就是负责数据库的高可用,而通过 scan 特性来提供负载均衡的功能。Oracle RAC 是一个相对比较复杂的系统,需要花点时间去学习以及掌握,不然在出现故障的时候很难快速去定位问题以及解决问题。
那么看下最后一个问题,Oracle 能否分库分表?理应是可以的,淘宝的 TDDL 可以支持 Oracle 的拆表。在Oracle的12.2版本中,也增加了Sharding的特性,可以透明的支持数据库分片,关于Oracle 12.2的新特性请参考:Oracle Database 12.2新特性详解。
搜索 盖国强(Eygle) :eeygle,或者扫描下面二维码,备注:云和恩墨大讲堂,即可入群。每周与千人共享免费技术分享,与讲师在线讨论。
从Approx_Count_Distinct到M7的CPU集成
云和恩墨