我需要检查前2个进程是oracle实例进程正在运行如果“是”发送带有v $ session详细信息的数据从数据库和sql文本进行查询..
我尝试过以下代码:
cpu_ps=`top -b -o +%MEM | head -n 10 | grep ora* | head -n 2 | awk '{print $12}' | sed -e 's/ora_mman_*//g'`
ora_cpu=`echo -e "${cpu_ps} \n"`
for ORACLE_SID in $ora_cpu
do
export ORACLE_SID=${ORACLE_SID}
echo $ORACLE_SID
export ORACLE_HOME=`grep -i "^${ORACLE_SID}:" /etc/oratab | cut -d: -f2 -s`
export PATH=$ORACLE_HOME/bin:$PATH
cpu_report=`${ORACLE_HOME}/bin/sqlplus -S -M "HTML ON TABLE 'BORDER="2"'" / as sysdba <<-EOF
SET PAGES 10000
SET LINES 3000
COLUMN username FOR a20
COLUMN machine FOR a100
select username,machine,program,status,count(*) from gv\\$session group by username,machine,program,status order by 1 asc;
exit
EOF`
echo $cpu_report > oracle_cpu_process.html
完成
我得到了像这样的输出
**ora_mman_or+
ora_mman_au+**
实际上我的oracle实例是orcle和autodb,但它显示如上输出...
如何检查前2个进程是否是oracle实例?并且需要每2分钟检查一次