【RAC】使用一条“ps”命令获取Linux环境下全部RAC集群进程信息

如何仅使用一条ps命令便能获取到所有与RAC集群进程相关的信息。
  从所使用的命令角度上看很简单,仅需使用ps命令结合grep命令便能实现。问题关键是需要确定检索哪些关键字。

1.与RAC集群有关的进程
1)常驻系统的通用进程
ocssd.bin
evmd.bin
evmlogger.bin
crsd.bin

这些通用进程需要在各种平台和数据库版本上都会启动。

2)特有进程
oprocd: 在UNIX平台当第三方集群软件为运行时会启动该进程;在Linux平台上会在Oracle 10.2.0.4这个版本上启动该进程
oclsvmon.bin: 随第三方集群软件启动而启动的进程
oclsomon.bin: 在Oracle 10.2.0.1平台上启动的用于检查ocssd.bin
diskmon.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第一节点命令执行后的显示结果如下所示:
[email protected] /home/oracle$ ps -ef | grep -v grep | grep -E ‘init|d.bin|ocls|oprocd|diskmon|evmlogger|PID‘
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Feb10 ?        00:00:06 init [5]
root      5666     1  0 Feb10 ?        01:01:52 /bin/sh /etc/init.d/init.cssd fatal
root      5668     1  0 Feb10 ?        00:32:18 /oracle/crs/oracle/product/10.2.0/crs/bin/crsd.bin reboot
root      6063  5666  0 Feb10 ?        00:00:00 /bin/sh /etc/init.d/init.cssd daemon
oracle    6090  5663  0 Feb10 ?        00:01:18 /oracle/crs/oracle/product/10.2.0/crs/bin/evmd.bin
oracle    6224  6189  0 Feb10 ?        00:03:59 /oracle/crs/oracle/product/10.2.0/crs/bin/ocssd.bin
oracle    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.log

3.小结
在查看RAC集群进程的过程中最关键的就是了解进程信息和功能,在此基础上操作系统命令仅仅是工具而已。

转:http://blog.itpub.net/519536/viewspace-693769/

时间: 2024-10-26 22:36:28

【RAC】使用一条“ps”命令获取Linux环境下全部RAC集群进程信息的相关文章

linux环境下Apache+Tomcat集群配置

写在前面 apache配置多个tomcat,实现请求分流,多个tomcat服务均衡负载,增加服务的可靠性.最近研究了一下,遇到许多问题,记录一下,方便以后查阅,不喜欢apache,nginx也是可以做到的. 准备 版本很重要,我就是由于版本原因,一直报错 linux 使用 #lsb_release -a查看当前linux系统版本. 本例:CentOS Linux release 7.0.1406 (Core) jdk 使用 # java -version查看当前版本,如果没有,先装好.downl

Linux 环境下搭建Jmeter集群

一.为什么要搭建集群? 主要原因单台服务器没有办法满足系统的压力,通过多台服务器来缓解压力. 二.Jmeter 分布式原理 1.JMeter 分布式测试,选择节点来做调度服务器,其他的节点作为执行节点,通过调度节点管理其他节点: 2.启动服务时,调度服务器会把脚本发送到各个执行节点(脚本会发送到执行节点,但是数据不会发送),执行节点拿到脚本开始执行命令: 3.各个执行节点执行结束以后将结果回传给调度节点,调度节点进行数据汇总: 原理图: 三.环境搭建 1.每个节点安装Jmeter. 2.进入Jm

linux环境下搭建ActiveMQ集群

ActiveMQ服务器数量:3个(复制3份) activemq-a(消费者),activemq-b(生产者,消费者),activemq-c(生产者,消费者) 修改配置文件 先修改activemq-a中的文件(端口号8161和61616,这个默认就行),修改activemq-a中conf下的activemq.xml 然后修改activemq-b中的文件(端口号8162和61617),修改activemq-b中conf下的activemq.xml 修改activemq-b中conf下的jetty.x

如何一步一步删除(linux & UNIX)环境下 oracle 11g 集群节点

 Deleting a Cluster Node on Linux and UNIX Systems 1.确定要删除的节点,是否active,pinned $ olsnodes -s -t 如果 pinned ,则crsctl unpin css  -n <nodename>  unpinned 相应的节点 2.禁用相应集群节点的应用资源,进程 先停掉 em: emctl stop dbconsole 以root 用户运行 在要删除节点的 $Grid_home/crs/install 路径

Linux环境快速部署Zookeeper集群

一.部署前准备: 1.下载ZooKeeper的安装包:http://zookeeper.apache.org/releases.html 我下载的版本是zookeeper-3.4.9. 2.将下载的zookeeper-3.4.9包放到/opt目录下,目录结构如下图所示: 3.在/tmp目录下新建一个zookeeper目录,并在zookeeper目录下新建一个data目录. 4.三台linux系统的ip: ip1:10.43.98.6 ip2:10.43.98.8 ip3:10.43.98.18

3. linux centos6.8环境下部署zookeeper集群

安装3台机器来作为zookeeper集群,3台机器的ip分别是192.168.174.7,192.168.174.8,192.168.174.9.zookeeper由java编写,所以在安装zookeeper前先安装jdk环境. 3台机器上分别创建zookeeper的安装目录 mkdir -p /usr/local/software/zookeeper 官网下载tar包,3台机器上分别分别解压 tar -xvf zookeeper-3.4.11.tar.gz -C /usr/local/soft

Linux环境下常用的SSH命令

目录操作: rm -rf mydir /*删除mydir目录*/ mkdir dirname /*创建名为dirname的目录*/ cd mydir /*进入mydir目录*/ cd – /*回上一级目录*/ cd .. /*回父目录,中间有空格*/ cd ~ /*回根目录*/ mv tools tool /*把tools目录改名为tool */ ln -s tool bac /*给tool目录创建名为bac的符号链接,最熟悉的应该就是FTP中www链接到public_html目录了*/ cp

针对 Linux 环境下 gdb 动态调试获取的局部变量地址与直接运行程序时不一致问题的解决方案

基础的缓冲区溢出实践通常需要确定运行状态下程序中的某些局部变量的地址,如需要确定输入缓冲区的起始地址从而获得注入缓冲区中的机器指令的起始地址等.在 Linux 环境下,可通过 gdb 对程序进行动态调试,从而获得程序运行状态下的信息( 关闭 ALSR 机制 ),基础的 gdb 操作可参见笔者的文章Linux下编辑.编译.调试命令总结--gcc和gdb描述.使用 gdb 可以方便的获取程序动态运行状态下的信息,但通过 gdb 动态调试获取的诸如缓冲区的起始地址等信息可能与程序实际运行时的信息并不相

C++如何用system命令获取文件夹下所有文件名

http://www.cplusplus.com/reference/cstdlib/system/ http://bbs.csdn.net/topics/30068943 #include <stdlib.h> 查找当前路径下文件名,并存入tmp.txt. system("dir > tmp.txt"); 查找绝对路径c:\folder下文件名,并存入tmp.txt. system("dir c:\\folder>tmp.txt"); C+