Oracle RAC集的简单介绍
一、 Oracle集体系结构
Oracle RAC,全称是 Oracle Real Application Cluster,即真正的应用集,是Oracle 提供的一个并行集系统,整个集系统由 Oracle Clusterware (集就绪软件)和 Real Application Clusters(RAC)两大部分组成。
oracle RAC的实质是位于不同操作系统的Oracle实例节点同时访问同一个Oracle数据库,每个节点间通过私有网络进行通信,互相监控节点的运行状态,oracle 数据库所有的数据文件、联机日志文件、控制文件等均放在集的共享存储设备上,而共享存储设备可以是 RAW、ASM、OCFS2 等,所有集节点可以同时读写共享存储。Oracle RAC 的基本拓扑结构如下所示:
由拓扑结构可知:一个 Oracle Rac 数据库有多个服务器节点组成,每个服务器节点上都有自己独立的 OS、ClusterWare、oracle Rac 数据库程序等,并且每个节点都有自己的网络监
听器。ClusterWare 是一个集软件,主要用于集系统管理,oracle Rac 数据库程序用于提供 oracle 实例进程,以供客户端访问集系统,监听服务主要用于监控自己的网络端口信息,所有的服务和程序通过操作系统都去访问一个共享存储,最终完成数据的读写。共享存储的实现方式有很多种,可以通过使用自动存储管理(ASM)、Oracle 集文件系统(OCFS)、裸设备(Raw)、网络区域存储(NAS)等来保证整个集系统数据的一致性。
从 Oracle10g 起,Oracle 提供了自己的集软件,即 Oracle clusterware,它通过 CRS(即 Cluster Ready Services)来实现,这个软件是安装 oracle rac 的前提,也是 RAC 环境稳定运行的基础,在 oracle10g 之前的版本,安装 RAC 时必须借助与第三方的集软件,而在 oracle10g 以后,安装 oracle rac 时,可以用 oracle 自带的集软件,也可以使用经过 RAC 认证的第三方集软件来代替。
从 oracle 的运行机制来说,集中每台服务器就是一个 oracle 实例,多个 oracle 实例对应同一个 oracle 数据库,组成了 oracle数据库集。请看下图:
从图中可以看出,运行在两个节点上的数据库实例访问同一个 RAC 数据库,并且两个节点的本地磁盘仅用来存放 oracle 安装程序和 ClusterWare 软件,而在共享存储上,存放了 oracle 的数据文件、控制文件、联机日志文件、归档日志文件等,这是安装 oracle Rac 时的一种数据存储分配方式,其实,RAC 提供了多种数据存储方式,这个将在下面进行独立介绍。
二、 Oracle Clusterware 体系结构与进程介绍
2.1、Oracle Clusterware 简介
Cluster Ready Services,简称 CRS,是 oracle 开发的一个集软件,与其它集软件类似,CRS 主要完成集成员管理、心跳监控、故障切换等功能,CRS 要求每个集节点的操作系统必须相同,这样,通过 CRS 将多个节点的操作系统绑定到了一起,客户端对集的访问,就像访问一台服务器一样。
CRS 主要有两个集套件组成,分别是 voting disk 和 Oracle Cluster Registry。
voting disk,即为表决磁盘,集中每个节点定期评估自身的健康情况,然后会把它的状态信息放入到表决磁盘上。并且节点间也会互相查看其运行状态,并把信息传递给其他节点进而写入表决磁盘。当集节点发生故障时,还可以通过表决磁盘进行投票仲裁等,因此,表决磁盘必须放在共享存储设备上。以保证每个节点都能访问到。表决磁盘可以是一个裸磁盘分区,也可以是一个独立的文件。由于它仅记录节点运行信息,磁盘大小一般在 10-20M 左右即可。
Oracle Cluster Registry,简称 OCR,即集注册服务,OCR 主要用于记录 RAC 中集和数据库的配置信息。这些信息包括了集节点的列表、集数据库实例到节点的映射以及 CRS 应用程序资源信息。
CRS 使用两种心跳设备来验证节点成员的状态,保证集的完整性:一个是表决磁盘,集同步服务进程每隔几秒钟都会向表决磁盘写入一条心跳信息,集通过表决磁盘即可验证节点的状态,如果某个节点在指定的最大时间段内没有向表决磁盘写入信息,集就认为此节点失效了,进而执行故障切换。另一个心跳是节点间私有以太网的心跳,通过这个心跳机制可以判断节点间是否出现了网络故障。两种心跳机制的结合,有效的增加了集的可靠性。
另外,CRS 建议用于内部通讯的私有以太网心跳必须与用于 RAC 节点间通讯的网络分开,也就是不能在同一网络中,如果 RAC节点间通讯的网络与私有以太网心跳在同一个网络内,那么,必须保证该网络不能被非集系统的节点访问到。
2.2、Oracle Clusterware进程介绍
Oracle Clusterware 通过 Cluster Ready Services 来完成集功能,CRS 包含了一组相互协作的后台进程,下面详细介绍下 CRS 中几个很重要的后台进程。
安装oracle10g
1、Cluster Synchronization Services简称 CSS,用于管理与协调集中各节点的关系,并用于节点间通信,当节点在加入或离开集时,都由 css 进行通知集。CSS 在集中对应的后台进程为 CSSD,该进程由 oracle 用户运行和管理。当节点发生故障时,cssd 会自动重启操作系统。
2、Cluster Ready Services简称 CRS,是管理集内高可用操作的主要程序,在集中 CRS 管理所有资源,包括数据库、服务、实例、vip 地址、、应用进程等,CRS 在集中对应的后台进程为 CRSD,该进程可以对集资源进行启动、停止、监视和容错等操作,正常状态下,CRSD监控节点各种资源,当某个资源发生异常时,自动重启或者切换该资源。
3、Process Monitor Daemon简称 OPROCD,此进程被锁定在内存中,用于监控集及提供 I/O 防护(I/O fencing)。OPROCD 运行在每个节点上,且定期执行健康检测,如果在超过它所希望的间隔内,仍然不能和某个节点通信,那么,OPROCD 将会重置处理器及重启节点。一个 OPROCD故障也将导致 Clusterware 重启节点。
4、Oracle Notification Service简称 ONS,即 oracle 通告服务,主要用于发布和订阅 Fast A
pplication Notification 事件。
5、Event Management简称 EVM,是一个事件检测的后台进程,由 oracle 用户运行和管理。
三、 RAC 数据库体系机构与进程
3.1、RAC 简介
RAC 是一个具有共享缓存体系结构的集数据库,它克服了传统的不共享和共享磁盘方法的限制,为所有业务应用程序提供了一种具有可伸缩性和可用性的数据库解决方案,它一般与 Oracle Clusterware 或第三方集软件共同组成 Oracle 集系统。
RAC 是一个全共享式的体系架构,它的所有数据文件、控制文件、联机日志文件、参数文件等都必须存放在共享磁盘中,因为只有这样,集所有节点才能访问到,RAC 支持多种存储方式,可以使用下面几种方式的任意一种:
(1)裸设备(Raw devices)也就是不经过文件系统,将数据直接写入磁盘中,这种方式的
好处是磁盘 I/O 性能很高,适合写操作频繁的业务系统,但缺点也很明显:数据维护和备份不方便,备份只能通过 dd 命令或者基于块级别的备份设备来完成,这无疑增加了维护成本。
(2)集文件系统为了支持共享存储,oracle 开发出了集文件系统 OCFS,这个文件系统可用于 Windows、Linux 和 Solaris,现在已经发展到了 OCFS2,通过 OCFS2 文件系统,多个集节点可以同时读写一个磁盘而不破坏数据,但对于大量读写的业务系统,性能不是很高。另外,oracle RAC 也支持第三方的集文件系统,例如 Redhat 的 GFS 等。
(3)网络文件系统(NFS)
(4)ASM,是 Oracle 推荐的共享数据存储方式,它是 Oracle 数据库 10g 包含的一个特性。ASM 其实就是 RAW 方式存储数据,但是加入了数据管理功能,它通过将数据直接写入磁盘,避免了经过文件系统而产生的 I/O消耗。因而,使用 ASM 可以很方便地管理共享数据,并提供异步 I/O 的性能。ASM 还可以通过分配 I/O 负载来优化性能,免除了手动调整 I/O 的需要。
3.2、Oracle RAC的特点
通过 RAC 数据库,可以构建一个高性能、高可靠的数据库集系统,RAC 的优势在于:
(1)可以实现多个节点间的负载均衡RAC 数据库集可以根据设定的调度策略,在集节点间实现负载均衡,因此,RAC 数据库每个节点都是工作的,同时也处于互相监控状态,当某个节点出现故障时,RAC 集自动将失败节点从集隔离,并将失败节点的请求自动转移到其它健康节点上,从而实现服务透明切换。
(2)可以提供高可用服务这个是 Oracle Clusterware 实现的功能,通过 CRS 可以实现节点状态监控,故障透明转移,这保证了 oracle 数据库可以对外不间断的提供服务。
(3)通过横向扩展提高了并发连接数RAC 这个优点非常适合大型的联机事务系统中。
(4)通过并行执行技术提高了事务响应时间这个是 RAC 集的一大优势,通常用于数据分享系统中。
(5)具有很好的扩展性在集系统不能满足繁忙的业务系统时,RAC 数据库可以很方便的添加集节点,且可以在线完成节点的添加,并自动加入集系统,不存在宕机时间;同时在不需要某个集节点时,删除节点也非常简单。RAC 数据库也有一定的缺点:
1)与单机数据库相比,管理维护更复杂,并对维护人员要求更高
2)底层规划设计不好时,系统整体性能会较差,甚至不如单机系统的性能。所以,如果对 RAC 数据库不是很了解,不建议马上在生产环境中使用。
3)由于 RAC 集系统需要多个节点,那么需要购买多台服务器,同时需要 oracle 企业级版本数据库,这无形中也增加了软硬件成本。
3.3、RAC进程管理
RAC 数据库是由多个节点构成的,每个节点就是一个数据库实例,而每个实例都有自己的后台进程和内存结构,并且在 RAC 集中,每个实例的后台进程和内存结构都是相同的,从整体上看起来,就像是一个单一数据库的镜像,但是,RAC 数据库在结构上与单实例库也有不同之处:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。