Home  >  Article  >  Database  >  初始Oracle RAC:产生的背景及其结构

初始Oracle RAC:产生的背景及其结构

WBOY
WBOYOriginal
2016-06-07 17:18:14843browse

Oracle RAC(Real Application Cluster,真正的应用集群)应用非常广泛,几乎支持目前的所有主流平台,尤其是Linux平台,Oracle公司

  对于信息系统来说,数据库可谓是其核心,它极大地影响了信息系统的安全性(数据安全、访问安全)、稳定性和整个信息系统的性能。这也是衡量数据库产品品质的三个重要指标,各大数据库厂商针对这些问题不断地增强自身产品的竞争力,以谋求更多的商业价值。本文讨论的是目前使用最为广泛的Oracle公司的数据库产品及其高可用性解决方案。

  Oracle RAC(Real Application Cluster,,真正的应用集群)应用非常广泛,几乎支持目前的所有主流平台,尤其是Linux平台,Oracle公司支持力度是最大的,在Linux平台的特性也是最多的,所以本书以Linux作为讨论的平台。

  RAC产生的背景

  就像每家每户用电一样,作为用电户总是不希望家里出现停电的情况,因为停电将对日常生活带来极大的不便。同样,作为信息系统的客户也不希望系统出现异常情况,这同样会影响客户正常的生产和生活。

  从硬件来说,为了追求信息系统更加高效稳定的运行,支撑信息系统运行的各个硬件组成部分,在产品长时间高效稳定运行方面得到了巨大的发展。例如,UPS电源保证机房在断电的情况下能支撑较长时间的供电,服务器有非常多不同于一般PC的设计来保证服务器能够长时间稳定的运行,存储系统也在不断地发展与进步,这些是硬件方面的内容,是信息系统运行的基础。

  从软件上来说,作为信息系统核心的数据库产品在不断增强产品质量的同时,也提出了自己的高可用性解决方案,并且这些方案也在不断地增强和普及。本书讨论的RAC数据库就是Oracle公司针对数据库的高可用性解决方案,数据库的高可用性依赖于硬件的稳定运行和设备的冗余,软硬件高效稳定的协同工作才能够保证系统更加安全、稳定和高效地运行。

  RAC体系结构

  RAC数据库是Oracle公司数据库的集群解决方案、高可用性解决方案。两个或多个服务器之间通过一个内部的私有网络互相连接起来,使用集群软件将集群中所有的服务器融合成一个整体,构成一个集群。

  集群内部的所有服务器共享存储,所有服务器都接入公共网络,通过集群唯一的别名对外形成逻辑上单一的数据库提供服务,对内实现集群数据库的高可用性、节点间的负载均衡和Failover(失败切换)。随着11gR2(11g的第二个大版本,2009年9月29发布)的推出,这一方案在10gR2版本的基础上得到了进一步的增强。Oracle 11gR2推出的新特性能更好地满足客户对高可用性的要求,并为系统的扩展、成本的降低、性能的提升提供多方面的优势。

  下面对RAC的体系结构进行讨论。

  一. 整体结构

  笔者认为,RAC有广义和狭义之分,本小节讨论广义的RAC,在1.2.3节将讨论狭义的RAC。广义上讲,一个真正的应用集群纵向看是由存储阵列、数据库集群、应用集群三部分组成,横向来看,是由多台应用服务器、数据库服务器和存储设备组成。如图1-1所示。

  从图1-1可以看出,如果存储、数据库和应用这三部分任意一部分没有实现集群,都无法实现真正意义上的集群,并无法保证整个系统是高可用的。例如,数据库使用的是RAC,存储也做了镜像保护,但应用服务器却是一台单机,当这台应用服务器出现故障,那么整个系统也将处于不可用状态,对客户来说并不能感受到高可用的存在。所以,广义上的RAC只有实现存储、数据库、应用三部分的集群,整个系统才能实现真正意义上的高可用。

  Oracle推出了相应的产品来支持这三部分:存储方面有ASM(从Oracle 11g开始独立出来作为Grid Infrastructure一部分),数据库方面有集群软件Clusterware和Database的组合,应用方面有Weblogic(从BEA收购来的)。

初始Oracle RAC:产生的背景及其结构

▲图1-1 RAC结构

  RAC的构架主要实现了数据库的集群和存储的集群。随着产品的发展,原来只用于数据库的Oracle EM (Enterprise Manager)工具将能够对应用服务器、数据库服务器及存储服务器实施统一管理。

  通过图1-1还能发现一个特点,存储设备向上对数据库集群提供统一接口的服务。这种统一接口指的是,虽然数据库服务器可能有多个HBA卡连接到存储的多个控制器,但是在数据库服务器上通过多路径软件,将多个路径合成一个路径,提供对存储访问的负载均衡和失败切换,从这点来说,存储设备向数据库集群提供了统一的访问接口。

  数据库集群向上对应用集群提供统一接口服务。这里的统一接口就是Oracle 11gR2出现的SCAN,通过统一的名称来访问集群,实现集群访问的负载均衡,通过和Service的结合实现失败切换。应用集群向上对用户提供统一的服务。

  应用服务器集群可能有另外的负载均衡硬件来进行管理,如F5,对于用户来说也只有统一的访问接口,即域名,通过应用负载均衡硬件实现负载均衡和失败切换,最终形成所有用户通过统一的域名就可以访问系统,并实现系统真正意义上的高可用。

  广义的RAC纵向的每一部分对于上层都是具有高可用性能力的,并且具有集群相关特点。所有这些存储设备、数据库和应用提供的对外服务接口都是统一的,对内实现了高可用的特点,任意一部分出现小范围的问题都不会导致整个系统的瘫痪,各部分的实现对于上层或者外部来说都是透明的。这样的集群才是真正意义上的集群,只是某一部分的集群则是不完整的高可用性解决方案。

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn