Oracle Cluster Ready Service(Oracle集群就绪服务)


amnesia:健忘症,多个节点中的配置信息不统一,用旧的配置文件,造成配置丢失。

RAC中使用OCR来解决。


Split Brain:脑裂,RAC使用投票算法及Quorun Device来解决。



IO Fencing:IO隔离,当集群出现脑裂时,必须要判断出哪个节点应该获得集群掌控权,哪些被赶出集群。

还要保证赶出节点不能操作共享数据。这个需要IO隔离解决。


--clusterware安装后,查询voting disk位置

$crsctl query css votedisk


------oracle clusterware component---------process

event manager service evmd

evmdlogger

oracle notification Service(ONS) ONS

process monitor daemon oprocd

RACG   racgmain

racgimon


----

ocssd进程是clusterware关键进程,这个进程异常会导致系统重启。

css:cluster synchronization service,css服务通过多种心跳机制实时监控集群健康状态,提供脑裂保护等基础集群服务功能。

css服务有两种心跳机制:

1.通过私有网络的network heartbeat,最大延时:MC(miscount) ,单位秒

2.通过voting disk的disk heartbeat,最大延时:IOT(I/O Timeout),单位秒


--------

--所有需要高可以用性的组件,都会在安装配置时候,以CRS Resource形式登记到OCR中。

CRSD:进程根据OCR中的内容决定监控那些进程、如可监控、出现问题时如何解决。

CRSD进程负责监控CRS Resource的运行状态,并要启动停止监控failover这些资源。


CRS Resource:

GSD(global service daemon)

ONS(Oracle Nofitication service daemon)

VIP

database

instance

service

这些资源分成两类:

Noteapps类:gsd ons vip listener。理解:每个节点只需要一个就够

Dfatabase-Related Resource类:database instance service。理解:不受节点限制。


GSD、ONS、VIP是在安装oracle clusterware时执行VIPCA时创建并登记到OCR中。

database、listener、instance、service是各自的配置过程中自动或手动登记到OCR




DLM(distributed lock management):分布式锁管理器。(数据块为粒度)

--dlm作用协调实例间对资源的竞争访问,处理多节点并发问题


在DLM中,根据资源数量活动密集程度把资源分成两类:

1.cache fusion resource:特指数据块这种资源,包括:普通数据块、索引数据块、段头块(segment header)、undo数据块

2.no-cache fusion resource:非数据块资源全部归类为这个类,包括:数据文件、控制文件、数据字典视图、library cache、row cache等


----------------

GRD(global resource directory) :记录的是每个数据块在集群间的分布图,位于每个实例的sga中,但每个实例sga中都是部分grd,所有实例的grd汇总在一起才是一个完整的grd

GCS(global cache service)

GES(global enqueue service)


GCS和GES通过使用全局资源目录(GRD)来管理每个数据文件和每个缓存的块的状态记录

GCS针对数据块的 GES针对锁、队列控制的 

GRD内容分布在所有活动的实例之间,通过这一点很有效的提高了Oracle RAC实例的SGA尺寸。 


----进程

1.LMSn - Global Cache Service Process 全局缓存服务进程:管理了节点和群集之间的数据访问请求

是cache fusion的主要进程,负责数据块在实例间的传递,对应的服务叫作GCS(global cache service)

这个进程名称来源于Lock Manager Service(9开始这个服务重新命名为global cache service[gcs])

进程数量通过参数:GCS_SERVER_PROCESSES控制,取值:0~9


GCS=>LMSn


2.LMD

负责的是global enqueue service(GES),这个进程负责在多个实例之间协调对数据块的访问顺序,保证数据的一致性访问。

它和LMSn进程的GCS服务还有GRD共同构成RAC最核心的功能cache fusion.


GES=>LMD


3.LCK

这个进程负责non-cache fusion资源的同步访问,每个实例有一个lck进程。


4.LMON 全局队列服务监控器

Global Enqueue Service Monitor (LOCK Monitor Processes)

主要监测群集内的全局队列和全局资源,管理实例和处理异常并相应的群集队列进行恢复操作。 

各个实例的LMON进程会定期通信,以检查集群中各个节点的健康状态,当某个节点出现故障时,

负责集群重构,GRD恢复等操作,它提供的服务叫作:Cluster Group Services(CGS)。


CGS=>LMON


5.CRS-集群资源服务(cluster ready services)   --crsd

    管理集群内高可用操作的基本程序

    CRS管理的任何事务被称之为资源

        数据库、实例、监听、虚拟IP、应用进程等等

    CRS是跟据存储于OCR中的资源配置信息来管理这些资源

    当一资源的状态改变时,CRS进程生成一个事件

6.CSS-集群同步服务(Cluster Synchronization Service) --cssd

    管理集群节点的成员资格

        控制哪个结点为集群的成员、节点在加入或离开集群时通知集群成员来控制集群配置信息

    此进程发生故障导致集群重启

7.EVMD事件管理服务(Event Management)  --evmd

    事件管理守护进程

    发布CRS创建事件的后台进程

8.ONS-事件的发布及订阅服务(Oracle Notification Service)

    通信的快速应用通知事件的发布及订阅服务


9.进程监控守护进程(OPROCD)-这个进程在内存被锁定来监控集群和提供I/O 栅栏。



---------------------------------------------------------

LMON - Lock Monitor锁监控器

LCK0 - Instance Enqueue Process实例队列进程

LMD0 - Global Enqueue Service Daemon全局队列服务守护进程

LMS0 - Global Cache Service Process全局缓存服务进程

DIAG - Diagnostic Process 诊断进程


在Linux上Oracle Cluster在/etc/inittab配置。它使用三个守护进程来实现: 

 CRS - Cluster Ready Service (crsd)群集就绪服务

 CSS - Cluster Synchronization Service (ocssd)群集同步服务

 EVM - Event Manager (evmd)事件管理器 



-------

网上资料、大话oracleRAC等