首页 > Linux操作系统 > Linux操作系统 > rac读书札记---后台进程
GSD与rac的管理工具dbca srvctl oem进行交互,用来完成实例的启动关闭等管理任务。
为了保证这些管理工具运行正常必须在所有的节点上先start gsd,并且一个GSD进程支持在
一个节点的多个rac.gsd进程位于$ORACLE_HOME/bin目录下,其log文件为$oracle_home
/srvm/log/gsdaemon.log
例如:
假设使用oem工具来启动一个实例,oem把该任务传递给相应的智能引擎,该智能引擎生成
一个包含SRVCTL命令的脚本文件,GSD进程读取该脚本文件并且执行该脚本,最后GSD把
执行结果返回给智能引擎,近而智能引擎返回给OEM.
又例如假设使用srvctl工具关闭所有的实例,GSD进程接受来自SRVCTL工具发出的请求,并
在本地节点上执行该请求,然后把执行结果返回给SRVCTL会话。
LMON主要监测群集内的全局队列和全局资源,管理实例和处理异常并相应的群集队列进行恢复操作。
LMD进程主要管理对全局队列和资源的访问,并更新相应队列的状态,处理来自于其他实例
的资源请求。每一个全局队列的当前状态存储在相应的实例共享内存中,该状态表明该实例
具有相应的权利使用该资源。一个实例(master)的共享内存中存在一个特殊的队列,该队
列纪录来自其他远程实例的资源请求,当远程实例的LMD进程发出一个资源请求时,该请求
指向master实例的LMD,当master实例的LMD进程受到该请求后,在共享内存中的特殊队列
中监测该资源是否无效,如果有效则LMD进程更新该资源对列的状态,并通知请求资源的
LMD进程该资源队列可以使用了,如果资源队列正在被其他实例使用或者当前无效,则
LMD进程通知正在使用中的实例的LMD进程应该释放该资源,等资源释放变得有效时,
MASTER实例的LMD进程更新该资源队列的状态并通知请求资源实例的LMD进程该资源
队列可以使用了。另外LMD进程也负责队列的死锁问题。。。
LMS进程主要用来管理集群内数据块的访问,并在不同实例的BUFFER CACHE中传输块
镜像。LMS进程跨集群管理数据库的请求,并保证在所有实例的BUFFER CACHE中一个
数据块的镜像只能出现一次。LMS进程靠着在实例中传递消息来协调数据块的访问,当
一个实例请求数据块时,该实例的LMD进程发出一个数据块资源的请求,该请求只向
MASTER数据块的实例的LMD进程,MASTER实例的LMD进程同时正在使用的实例的LMD
进程释放该资源,这时拥有该资源的实例的LMS进程会创建一个数据块镜像的一致性读
然后把该数据块传递到请求该资源的实例的BUFFER CACHE中。
LMS进程保证了在每一时刻只能允许一个实例去更新数据块,并负责保持该数据块的
镜像纪录(包含更新数据块的状态FLAG),RAC提供了10个LMS进程,该进程数量随着
节点间的消息传递的数据的增加而增加。
LCK进程主要用来管理实例间资源请求和跨实例调用操作,调用操作包括数据字典等对象
的访问;并处理出CACEH FUSION的CHACE资源请求(例如:DICTIONARY CACHE)
DIAG进程主要用来捕获实例中失败进程的诊断信息,并生成相应的TRACE文件(该trace
文件保存在backupground_dump_dest/cdmp_timestamp目录下),该进程不
需要进行配置更不应该被停止。该进程自动启动不需要进行调整,如果该进程失效则自动
重新启动。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/90618/viewspace-707042/ ,如需转载,请注明出处,否则将追究法律责任。