如何仅使用一条ps命令便能获取到所有与RAC集群进程相关的信息。
从所使用的命令角度上看很简单,仅需使用ps命令结合grep命令便能实现。问题关键是需要确定检索哪些关键字。1.与RAC集群有关的进程1)常驻系统的通用进程ocssd.binevmd.binevmlogger.bincrsd.bin这些通用进程需要在各种平台和数据库版本上都会启动。2)特有进程oprocd: 在UNIX平台当第三方集群软件为运行时会启动该进程;在Linux平台上会在Oracle 10.2.0.4这个版本上启动该进程oclsvmon.bin: 随第三方集群软件启动而启动的进程oclsomon.bin: 在Oracle 10.2.0.1平台上启动的用于检查ocssd.bindiskmon.bin: 在Oracle 11.1.0.7版本中针对Exadata启动的新进程oclskd.bin: 在Oracle 11.1.0.6版本上当数据库实例出现hang死现象后,该进程用于重新启动节点注意:以上所有与RAC集群相关的进程中ocssd.bin、oprocd.bin和oclsomon.bin这三个进程出现异常被杀死或停止时都会导致节点重启,其他进程出现问题后会自动重新启动。2.针对RAC集群进程给出查询命令这里的RAC操作系统环境是Linux,Oracle版本是10.2.0.3。我们使用操作系统“ps -ef | grep -v grep | grep -E 'init|d.bin|ocls|oprocd|diskmon|evmlogger|PID'”(这里用到了grep的-E正则表达式功能)命令完成我们的任务。这里给处理需要检索的关键字信息。RAC第一节点命令执行后的显示结果如下所示:secdb1@secdb1 /home/oracle$ ps -ef | grep -v grep | grep -E 'init|d.bin|ocls|oprocd|diskmon|evmlogger|PID'UID PID PPID C STIME TTY TIME CMDroot 1 0 0 Feb10 ? 00:00:06 init [5]root 5666 1 0 Feb10 ? 01:01:52 /bin/sh /etc/init.d/init.cssd fatalroot 5668 1 0 Feb10 ? 00:32:18 /oracle/crs/oracle/product/10.2.0/crs/bin/crsd.bin rebootroot 6063 5666 0 Feb10 ? 00:00:00 /bin/sh /etc/init.d/init.cssd daemonoracle 6090 5663 0 Feb10 ? 00:01:18 /oracle/crs/oracle/product/10.2.0/crs/bin/evmd.binoracle 6224 6189 0 Feb10 ? 00:03:59 /oracle/crs/oracle/product/10.2.0/crs/bin/ocssd.binoracle 6512 6090 0 Feb10 ? 00:00:03 /oracle/crs/oracle/product/10.2.0/crs/bin/evmlogger.bin -o /oracle/crs/oracle/product/10.2.0/crs/evm/log/evmlogger.info -l /oracle/crs/oracle/product/10.2.0/crs/evm/log/evmlogger.log3.小结在查看RAC集群进程的过程中最关键的就是了解进程信息和功能,在此基础上操作系统命令仅仅是工具而已。转:http://blog.itpub.net/519536/viewspace-693769/