第一篇我们讨论了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的拆表,但本人没在实际应用中去使用过。