在10g和11.1,Oracle的集群称为CRS(Oracle Cluster Ready Service), 在11.2,Oracle的集群称为GI(Grid Infrastructure)。 对于CRS/GI,他们的一些核心进程的功能基本类似,但是在11.2,新增了很多新的Deamon进程。

10.2 CRS:
$ ps -ef|grep crs/bin
root      4373  3605  0 Feb25 ?        00:02:49 /u01/app/crs/bin/crsd.bin reboot
oracle    4380  4379  0 Feb25 ?        00:00:03 /u01/app/crs/bin/evmd.bin
oracle    4925  4888  0 Feb25 ?        00:00:00 /u01/app/crs/bin/oclsomon.bin
root      4928  4483  0 Feb25 ?        00:00:00 /u01/app/crs/bin/oprocd.bin run -t 1000 -m 10000 -
hsi 5:10:50:75:90 -f
oracle    5065  4512  0 Feb25 ?        00:00:54 /u01/app/crs/bin/ocssd.bin
oracle    6825  4380  0 Feb25 ?        00:00:00 /u01/app/crs/bin/evmlogger.bin -o

11.2 GI:
$ ps -ef|grep grid/bin
root      6656     1  0 Feb25 ?        00:09:20 /u01/app/11.2.0/grid/bin/ohasd.bin reboot
grid      7960     1  0 Feb25 ?        00:16:54 /u01/app/11.2.0/grid/bin/oraagent.bin
grid      7972     1  0 Feb25 ?        00:00:05 /u01/app/11.2.0/grid/bin/mdnsd.bin
grid      7982     1  0 Feb25 ?        00:03:45 /u01/app/11.2.0/grid/bin/gpnpd.bin
grid      7993     1  0 Feb25 ?        00:14:19 /u01/app/11.2.0/grid/bin/gipcd.bin
root      7995     1  1 Feb25 ?        00:41:42 /u01/app/11.2.0/grid/bin/orarootagent.bin
root      8010     1  0 Feb25 ?        00:28:03 /u01/app/11.2.0/grid/bin/osysmond.bin
root      8026     1  0 Feb25 ?        00:01:31 /u01/app/11.2.0/grid/bin/cssdmonitor
root      8040     1  0 Feb25 ?        00:02:22 /u01/app/11.2.0/grid/bin/cssdagent
grid      8057     1  1 Feb25 ?        00:48:04 /u01/app/11.2.0/grid/bin/ocssd.bin
root      8136     1  0 Feb25 ?        00:02:49 /u01/app/11.2.0/grid/bin/octssd.bin reboot
grid      8158     1  0 Feb25 ?        00:02:24 /u01/app/11.2.0/grid/bin/evmd.bin
root      8278     1  0 Feb25 ?        00:04:18 /u01/app/11.2.0/grid/bin/crsd.bin reboot
grid      8357  8158  0 Feb25 ?        00:00:00 /u01/app/11.2.0/grid/bin/evmlogger.bin -o 
/u01/app/11.2.0/grid/evm/log/evmlogger.info -l /u01/app/11.2.0/grid/evm/log/evmlogger.log
grid      8406     1  0 Feb25 ?        00:11:22 /u01/app/11.2.0/grid/bin/oraagent.bin
root      8414     1  1 Feb25 ?        00:36:22 /u01/app/11.2.0/grid/bin/orarootagent.bin

我们对这些常见的集群进程做一些解释:

各个版本共有的:
1. ocssd.bin:这是一个很核心的进程,如果它异常终止会导致这个节点的集群或者主机重启。这个进程主要用于检查表决盘能否正常访问,节点私网间的通信是否正常。数据库实例上的LMON进程也会注册到CSSD上,这样CSSD会通过LMON来了解数据库实例的健康情况。
  如果节点发生了主机自动重启,需要查看ocssd的日志,位于: <CRS_HOME>/log/<host>/cssd。

可以参考下面的文档来了解节点重启:
如何诊断节点重启问题
11gR2 如何诊断节点重启问题

2. crsd.bin: 这个进程主要用于管理集群中的资源。用来启动、停止检查一些资源,比如数据库实例、ASM、监听、磁盘组、VIP等。在11.2,这些具体的操作由对应的agent执行。另外,OCR的维护也是由CRSD完成的。
   当发现某些资源异常终止后,首先需要查看crsd的日志:<CRS_HOME>/log/<host>/crsd。

3. evmd.bin: 事件监控(event monitor)进程,由它来发布集群事件,比如实例启动、停止等事件。

4. ons进程:Oracle Notification Service daemon,它用于接收evmd发来的集群事件,然后将这些事件发送给应用预订者或者本地的监听,这样就可以实现FAN(Fast Application Notification),应用能够接收到这些事件并进行处理。

5. gsd: 只有当CRS或者GI上需要管理9i的数据库时才需要。在11.2, gsd 默认就是offline的。
可以参考My Oracle Support 文档: GSD Is Used Only if 9i RAC Database is Present (Doc ID 429966.1)

10g和 11.1特有的:
1. oprocd.bin:Oracle Clusterware Process Monitor Daemon,用来监控主机hang,如果发现主机hang后会发起主机重启。只有未使用第三方的集群软件时才运行,Linux上从10.2.0.4开始使用。
   oprocd的日志会在:/etc/oracle/oprocd/*.log.* 或者 /var/opt/oracle/oprocd/*.log.*。

2. oclsomon.bin: 用来监控ocssd进程是否hang,如果发现hang,会发起reboot.

11.2特有的:
1. cssdagent(11.2): 这个进程由ohasd启动,然后由它来启动、停止、检查ocssd进程,以root身份运行。
   它的日志位于:<GRID_HOME>/log/<host>/agent/ohasd/oracssdagent_root

2. cssdmonitor(11.2):监控cssdagent,并且检查节点hang(类似于oprocd),监控ocssd进程是否hang(类似于oclsomon),监控vendor clusterware(类似于vmon),以root身份运行。
   它的日志位于:<GRID_HOME>/log/<host>/agent/ohasd/oracssdmonitor_root

3. ohasd.bin: 在GI启动时,最先启动的就是ohasd,然后由它启动agent(orarootagent,oraagent, cssdagnet 和 cssdmonitor) ,各个agent再启动对应的进程。  
    如果GI启动过程有问题,可以查看一下ohasd的日志:<GRID_HOME>/log/<host>/agent/ohasd

4. mdnsd.bin:这个进程通过多播(Multicast)发现集群中的节点和所有的网卡信息。一定要确定集群中的网卡支持多播,而且节点间的通信正常。
   它的日志位于:<GRID_HOME>/log/<host>/mdnsd

5. gpnpd.bin: 发布构建集群所需要的bootstrap 信息,并且在集群的所有节点之间同步gpnp profile。
   它的日志位于:<GRID_HOME>/log/<host>/gpnpd

6. gipcd.bin: 这个进程负责管理集群中所有的私网(cluster interconnect)网卡。私网信息是通过gpnpd获得的。
   它的日志位于:<GRID_HOME>/log/<host>/gipcd

7. gnsd(可选): Grid Naming Service. 相当于子DNS,功能和DNS类似,会取代使用/etc/hosts进行主机的解析。
   它的日志位于:<GRID_HOME>/log/<host>/gnsd

8. octssd.bin: The Cluster Time Sync Service(CTSS) 用于各个节点间的时钟同步,集群中的一个节点的时钟会作为参照节点,其它节点和这个节点进行时钟同步。注意:当第三方时间同步软件(例如:NTP) 存在时,CTSS会以‘观察者’的方式运行,并不修改节点时间,但是,如果CTSS没有发现第三方时间同步软件,它会开始修改节点时间以便和参考节点同步。
   它的日志位于:<GRID_HOME>/log/<host>/ctssd.

9. osysmond.bin :这是Oracle Cluster Health Monitor(CHM)的主要进程,这个进程在所有节点都会运行,sysmond会将每个节点的资源使用情况发送给cluster logger service,后者将会把所有节点的信息都接收并保存到CHM的资料库。
   它的日志位于:<GRID_HOME>/log/<host>/crfmond/crfmond.log

10. ologgerd: 这是Oracle Cluster Health Monitor(CHM)的另一个主要进程,在一个集群中的,ologgerd 会有一个主机点(master),还有一个备节点(standby)。当ologgerd在当前的节点遇到问题无法启动后,它会在备用节点启用。
   它的日志位于:<GRID_HOME>/log/<host>/crflogd/crflogd.log

关于CHM,请参考:
11gR2 新特性:Oracle Cluster Health Monitor(CHM)简介

11. <XXX>agent.bin:在11.2,各个资源的启动、停止和检查都是由agent来执行的。ohasd 会把这些agent启动。

Agent包括两种,一种是ohasd的:
oraagent_grid: 启动/停止/检查/清除ora.asm, ora.evmd, ora.gipcd, ora.gpnpd, ora.mdnsd等资源。
orarootagent_root:启动/停止 /检查/清除 ora.crsd, ora.ctssd, ora.diskmon, ora.drivers.acfs, ora.crf (11.2.0.2)等资源。
oracssdagent_root: 启动/停止/检查 ocssd进程。
oracssdmonitor_root:监控cssdagent进程。

它们的日志位于:<GRID_HOME>/log/<host>/agent/ohasd

另一种是crsd的:
oraagent_grid: 启动/停止/检查/清除 asm, ora.eons, ora.LISTENER.lsnr, SCAN listeners, ora.ons, diskgroup  等资源
oraagent_oracle: 启动/停止/检查/清除 service, database 等资源
orarootagent_root : 启动/停止/检查/清除 GNS, VIP, SCAN VIP and network 等资源.
scriptagent_grid:  应用服务定制的服务。

它们的日志位于:<GRID_HOME>/log/<host>/agent/crsd

关于agent的更多信息,请参考文章 "11gR2 Agent 简介"。

Oracle CRS/GI 进程介绍的更多相关文章

  1. Oracle EBS WMS功能介绍(二)

    Oracle EBS WMS功能介绍(二) (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处.否则请与本人联系,违者必究) 出货物流逻辑主要包括 1.      打包.能够进 ...

  2. Oracle Merge into 详细介绍

    Oracle Merge into 详细介绍 /*Merge into 详细介绍MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句.通过MERGE语句,根据一张表或子查 ...

  3. Nginx-->基础-->理论-->002:Nginx进程介绍

    一.Nginx进程介绍

  4. Oracle创建自增字段方法-ORACLE SEQUENCE的简单介绍

    引用自 :http://www.2cto.com/database/201307/224836.html   Oracle创建自增字段方法-ORACLE SEQUENCE的简单介绍 先假设有这么一个表 ...

  5. Oracle CASE WHEN 用法介绍[Z]

    Oracle CASE WHEN 用法介绍 1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ...

  6. Linux下使用ps命令来查看Oracle相关的进程

    Linux下可以使用ps命令来查看Oracle相关的进程 Oracle Listener 这个命令会列出Oracle Net Listener的进程 [oracle@ www.linuxidc.com ...

  7. ORACLE 中的 锁 介绍

    ORACLE 中的 锁 介绍 Oracle数据库支持多个用户同时与数据库进行交互,每个用户都可以同时运行自己的事务,从而也需要对并发访问进行控制.Oracle也是用“锁”的机制来防止各个事务之间的相互 ...

  8. Oracle删除死锁进程的方法

    本文实例讲述了Oracle删除死锁进程的方法.分享给大家供大家参考.具体如下: 步骤1:用以下SQL查看进程列表,判断出被锁定的表 复制代码代码如下: SELECT dob.OBJECT_NAME T ...

  9. Oracle体系结构之进程

    Oracle体系结构之进程 一.概述 Oracle中的每个进程都要执行一个特定的任务(或者一组任务),每个进程都会为自己分配内存(PGA)来完成它的任务.一个Oracle实例主要有以下3类进程: (1 ...

随机推荐

  1. 编译portmap和nfs-utils

    编译portmap和nfs-utils 为了在播放机上实现NFS服务器的功能,我们已经在uClibc中打开了完整RPC支持,并且在新编译的内核中打开了NFS服务器支持.此外还有两个软件包也是提供NFS ...

  2. glib 库 hash table 使用

    glib库提供了 hashtable 的实现 1. 常用函数: 创建一个 GHashTable 函数: hash_func 是创建value的key值的函数,key_equal_func 是比较两个k ...

  3. 面试问题 - C# 接口和抽象类的区别

    这个问题基本上可以说是 面试时的必问问题 C# 中的接口和抽象类 相同点: 1. 都不能直接实例化,都可以通过继承实现其抽象方法 2. 都是面向抽象编程的技术基础,实现了诸多的设计模式 不同点: 1. ...

  4. 2019计蒜之道初赛4 B. 腾讯益智小游戏—矩形面积交(简单)(矩形交集)

    B. 腾讯益智小游戏—矩形面积交(简单) 1000ms 262144K   腾讯游戏开发了一款全新的编程类益智小游戏,最新推出的一个小游戏题目是关于矩形面积交的.聪明的你能解出来吗?看下面的题目接招吧 ...

  5. POJ 1845-Sumdiv(快速幂取模+整数唯一分解定理+约数和公式+同余模公式)

    Sumdiv Time Limit:1000MS     Memory Limit:30000KB     64bit IO Format:%I64d & %I64u Submit Statu ...

  6. SQL SERVER动态列名

    在ms sql server实现动态呈现列的方法很多.下面Insus.NET解决也算是另外一种参考. 如: 准备实现功能的数据: ) NOT NULL PRIMARY KEY) INSERT INTO ...

  7. codevs3002 石子归并3

    3002 石子归并 3 题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量和w[i]+w[i+1].问安 ...

  8. IT兄弟连 Java语法教程 Java开发环境 JVM、JRE、JDK

    要想开发Java程序,就需要知道什么是JVM.JRE以及JDK.JVM是运行Java程序的核心,JRE是支持Java程序运行的环境,而JDK是Java开发的核心,下面我们分别具体介绍它们以及它们之间的 ...

  9. 剑指Offer的学习笔记(C#篇)-- 连续子数组的最大和

    题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...

  10. python爬虫——web前端基础(4)

    CSS,指层叠样式表,用来定义如何显示HTML元素,一般和HTML配合使用. 在HTML中使用CSS样式的方法: 内联样式表:CSS代码直接写在现有的HTML标记中,直接使用style属性改变样式.例 ...