欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle clusterware 和 Oracle RAC 的主要部件

程序员文章站 2022-05-22 11:08:43
...

oracle clusterware 主要有以下主要部件: CSS: 集群同步服务 主要管理整个集群内各个节点间的情况,包括节点的添加和减少。与之

现在看相关的RAC结构的文章还不太理解。

现在看这个就很清楚其中的意思了。

Oracle clusterware 主要有以下主要部件:
CSS: 集群同步服务
主要管理整个集群内各个节点间的情况,包括节点的添加和减少。与之对应的是ocssd 进程,如果改进程出现故障将会导致节点重启。如果使用了第三方的clusterware,css 通过第三方clusterware 管理节点间的信息。
关于是否使用第三方clusterware,css 的不同在init.crsd 中有如下定义:
# FAST_REBOOT - take out the machine now. We are concerned about
# data integrity since the other node has evicted us.
# SLOW_REBOOT - We can rely on vendor clusterware to delay sending
# the reconfig to the other node due to its IO fencing
# guarantees. So trigger its diagnostic reboot.

如果使用了第三方的clusterware,,是否reboot的决定将交给它去决定。

CRS: 集群就绪服务
主要管理注册到cluster 中的资源(包括vip,instance,db,listener,service等),它会自动重启失败的资源,一般会自动重启5次,如果依然不能重启成功,将放弃重启。

EVM: 事件管理器
主要发布一些crs 产生的事件。

ONS: Oracle Notification Service
主要是接受evmd 和 racgimon 传来的events,并把它发布给local listener 和 application。
主要有两个目的:
a) 使得应用知道集群的状态的变化,并采取相应的措施。如Fast Connection Failover.
b) 用于实现Load balancing. rdbms 的mmon 进程每隔30s 对该节点的wordload 做一次记录,然后通过racgimon 和 ONS 传递给local listener 和 application。

OPROCD:
该进程时刻在内存中运行,监控cluster。如果该进程出现故障,将会重启改节点。

RAC 的主要部件:

相对于单节点的oracle database,rac database 主要是引入了cache fusion 机制,从而减少了磁盘io的次数。在了解rac特有的一些进程之前,先了解一些概念:

GRD:Global Resource Directory
存放在本地内存中,记录共享资源当前的状态。一般一个GRD包含如下内容:dba, location, mode(N, S, X),Role (local,global), PI,XI, scn 等。在一个远程节点提出访问一个数据块的请求之后,要通过访问grd来查看当前模式是否允许远程节点的相应的操作。

Resources Master:
在每次访问一个数据块的时候,都要先访问一次Resources Master(对于每个数据块,oracle 都会为之分配一个instance,作为这个数据块的RM), 然后,Resources Master 通知ges,ges将请求信息发送给gcs,然后访问grd,一切通过之后gcs从该块的holder instance 开始相应远程节点的请求。
在一下情况,RM的位置可能发生改变:
a) 当远程节点访问这个RM的次数大于RM所在节点的次数时,RM将迁移至远程节点
b) 当RM所在节点failed以后,本节点的RM要重新分配到其他存活的节点
c)当添加新的节点后,RM也要重新分配。
RM 的重新分配由进程LMON 负责。

RAC环境特有的若干进程:

LMS—Global Cache Service Process
传输一个本地的buffer cache 到远程的buffer cache,对于要求一致性读的请求,LMS会自动rollback一个数据块来相应一致性请求。根据LMS任务量的多少,每个实例改进程的数量可以从1增加到9.

LMD—Global Enqueue Service Daemon
负责管理远程节点向Resources Master 发出的请求。它发送请求信息到request enqueue, 然后有gcs 来处理enqueue 上面的请求。

LMON—Global Enqueue Service Monitor
负责RM的重新分配

LCK0—Instance Enqueue Process
主要负责那些non-cache fusion 的请求,如library cache 和 row cache 等。

Oracle clusterware 和 Oracle RAC 的主要部件