自己编写的简单Oracle监控脚本(一)

本文介绍了一个用于在系统负载超过阈值时自动查找并记录占用较高CPU资源的Oracle数据库会话的Shell脚本。该脚本通过分析当前系统负载情况,使用top命令定位消耗大量资源的进程,并进一步通过SQL查询来获取具体的Oracle会话信息。

#!/bin/bash

load=`cat /proc/loadavg | awk '{printf "%d", $1}'`
echo $load
if [ "$load" -gt "1" ]; then

#look_out=`cat /proc/loadavg | awk '{print $5}' `
look_out=`top -n 1 | awk '{print $1}' | sed -n '11,11p'`
echo $look_out
ps -l $look_out >>/data/run/test.log
#check=`ps -l $look_out | awk '{print $14}' | grep -v CMD`
check=`top -n 1 | awk '{print $12}' | sed -n '11,11p'`
echo $check

if [ "$check" = "oracle" ]; then
ORACLE_HOME=/u01/product/oracle;export ORACLE_HOME
ORACLE_SID=orcl;export ORACLE_SID

output=`sqlplus  internal <       set heading off feedback off verify off
       select a.username,a.machine,a.program,b.spid,c.sql_text from v\\$session a,v\\$process b,v\\$sqlarea c where a.paddr=b.addr and  c.hash_value=a.sql_hash_value and c.address=a.sql_address and b.spid=$look_out;
       exit
       EOF
`
echo "$output">>/data/run/test.log

else
   echo "NULL"
fi
else
exit 0
fi

此脚本用来记录系统负载升高时占用CPU较高的session。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/110321/viewspace-611045/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/110321/viewspace-611045/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值