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等