赞
踩
Oracle RAC,全称是Oracle Real Application Cluster,翻译过来为Oracle真正的应用集群,它是Oracle提供的一个并行集群系统,由 Oracle Clusterware(集群就绪软件) 和 Real Application Cluster(RAC) 两大部分组成。
Oracle RAC的实质是 位于不同操作系统的Oracle实例节点同时访问同一个Oracle数据库 ,每个节点间通过私有网络进行通信,互相监控节点的运行状态,Oracle数据库所有的数据文件、联机日志文件、控制文件等均放在集群的共享存储设备(可以是RAW、ASM、OCFS2等)上,所有集群节点可以同时读写共享存储。
Oracle RAC的基本拓扑结构如下所示:
由上图可知,
Oracle 10g起,Oracle提供自己的集群软件Oracle ClusterWare,它通过CRS(Cluster Ready Services)来实现,这个软件是安装Oracle RAC的前提,也是RAC环境稳定运行的基础。在10g之前的版本,安装RAC必须借助于第三方的集群软件。
从Oracle运行机制来说,集群中每台服务器就是一个Oracle实例,多个Oracle实例对应同一个Oracle数据库,组成Oracle数据库集群。
RAC是一个具有共享缓存体系结构的集群数据库,它克服了传统的不共享和共享磁盘方法的限制,为所有业务应用程序提供了一种可伸缩性和可用性的数据库解决方案,一般与Oracle Clusterware或第三方集群软件共同组成Oracle集群系统。
RAC是一个全共享式的体系架构,所有数据文件、控制文件、联机日志文件、参数文件等都必须存放在共享磁盘中,因为只有这样,集群所有节点才能访问到,RAC支持多种存储方式,包括:
通过RAC数据库,可以构建一个高性能、高可靠的数据库集群系统,优势包括:
RAC的缺点包括:
RAC数据库在结构上与单实例库有一些不同之处:
显然,这种机制是每个实例独立的使用自己的重做线程和回滚表空间,各自锁定自己修改的数据。这种设计方式,把多个实例的操作相对独立的分开。
RAC数据库如何实现节点数据的一致性?每个RAC实例的SGA内有一个buffer cache(缓冲区),通过Cache Fusion(缓存融合)技术 ,RAC在各个节点之间同步SGA中的缓存信息,从而保证节点数据的一致性,同时也提高集群的访问速度。
RAC最大的特点是共享,如何实现多个节点间的数据共享?RAC中有两个重要的进程:**Global Cache Service(全局缓存服务 GCS)**和 Global Enqueue Service(全局队列服务 GES)
全局缓存服务(GCS)和全局队列服务(GES)是最基本的RAC进程,主要用于协调对共享数据库和数据库内的共享资源的同时访问。 同时,GES和GCS通过使用全局资源目录(Global Resource Directory,GRD) 来记录和维护每个数据文件的状态信息,GRD保存在内存中,内容分布存储在所有实例上。
RAC中通过几个特别的进程与GRD相结合,使得RAC可以使用缓存融合技术,这几个进程为:
安装RAC数据库涉及的软件有Oracle Clusterware、RAC数据库软件,同时还有voting disk、OCR等,每部分占用磁盘空间如下:
下表列出Oracle可以使用的存储类型:
具体使用哪种存储策略,要根据安装RAC环境的不同而不同。推荐三种常用的存储方式:
Cluster Ready Services,简称CRS,是Oracle开发的一个集群软件。其主要完成集群成员管理、心中监控、故障切换等功能,CRS要求每个集群节点的操作系统必须相同,这样通过CRS将多个节点的操作系统绑定到了一起,客户端对集群的访问,就像访问一台服务器一样。
CRS主要有两个集群套件组成,分别为voting disk和Oracle Cluster Registry。
CRS使用两种心跳设备来验证节点成员的状态:
两种心跳机制的结合,有效增加了集群的可靠性。另外,CRS建议用于内部通讯的私有以太网心跳必须与用于RAC节点间通讯的网络分开,不能在同一网络中,如果RAC节点间通讯的网络与私有以太网心跳在同一个网络内,则必须保证该网络不能被非集群系统的节点访问到。
Oracle Clusterware通过Cluster Ready Services来完成集群功能,CRS包含一组相互协作的后台进程:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。