Oracle Cluster Ready Service(Oracle集群就绪服务)css
amnesia:健忘症,多个节点中的配置信息不统一,用旧的配置文件,形成配置丢失。算法
RAC中使用OCR来解决。数据库
Split Brain:脑裂,RAC使用投票算法及Quorun Device来解决。缓存
IO Fencing:IO隔离,当集群出现脑裂时,必需要判断出哪一个节点应该得到集群掌控权,哪些被赶出集群。网络
还要保证赶出节点不能操做共享数据。这个须要IO隔离解决。并发
--clusterware安装后,查询voting disk位置oracle
$crsctl query css votediskapp
------oracle clusterware component---------process分布式
event manager service evmdide
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等