Home > Database > Mysql Tutorial > body text

Oracle系列:Oracle RAC集群体系结构

WBOY
Release: 2016-06-07 17:39:56
Original
888 people have browsed it

一、Oracle集群体系结构OracleRAC,全称是OracleRealApplicationCluster,即真正的应用集群,是oracle提供的一个并行集群系统,整个集群系统由OracleClusterware

 一、 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中几个很重要的后台进程。

1Cluster Synchronization Services

简称CSS,用于管理与协调集群中各节点的关系,并用于节点间通信,当节点在加入或离开集群时,都由css进行通知集群。CSS在集群中对应的后台进程为CSSD,该进程由oracle用户运行和管理。当节点发生故障时,cssd会自动重启操作系统。

2Cluster Ready Services

简称CRS,是管理群集内高可用操作的主要程序,在集群中CRS管理所有资源,包括数据库、服务、实例、vip地址、监听器、应用进程等,CRS在集群中对应的后台进程为CRSD,该进程可以对集群资源进行启动、停止、监视和容错等操作,正常状态下,CRSD监控节点各种资源,当某个资源发生异常时,自动重启或者切换该资源。

3Process Monitor Daemon

简称OPROCD,此进程被锁定在内存中,用于监控集群及提供I/O防护(I/O fencing)。OPROCD运行在每个节点上,且定期执行健康检测,如果在超过它所希望的间隔内,仍然不能和某个节点通信,那么,OPROCD将会重置处理器及重启节点。一个OPROCD故障也将导致Clusterware重启节点。

4Oracle Notification Service

简称ONS,即oracle通告服务,主要用于发布和订阅Fast Application Notification事件。

5Event Management

简称EVM,是一个事件检测的后台进程,由oracle用户运行和管理。

 

三、 RAC数据库体系机构与进程

 

3.1、RAC简介

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!