ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 系统脚本之oracle

系统脚本之oracle

原创 Linux操作系统 作者:g644516804 时间:2011-04-27 18:12:37 0 删除 编辑

Crontab  -e

脚本编写:

杀掉空闲时间超过系统设置的idle_time(根据用户的profile设定的)的用户进程:

Killsniped.sh

#!/bin/sh

ORACLE_HOME=/ora102/10.2;export ORACLE_HOME

ORACLE_SID=STCSMES;export ORACLE_SID

PATH=$PATH:$ORACLE_HOME/bin;export PATH

tmpfile=/tmp/tmp.$$

sqlplus -s ' / as sysdba' <

set pagesize 0;

set linesize 20;

set head off;

set feedback off;

spool $tmpfile

select trim(p.spid) from v\$process p,v\$session s

where s.paddr=p.addr

and s.status='SNIPED' and s.type='USER';

spool off

EOF

for x in `cat $tmpfile | grep "^[0123456789]"`

do

kill -9 $x

done

rm $tmpfile

 

monitor session 的脚本:

session_monitor_full.sh:

#!/bin/sh

ORACLE_BASE=/ora102;export ORACLE_BASE

ORACLE_HOME=/ora102/10.2;export ORACLE_HOME

ORACLE_SID=STCSMES;export ORACLE_SID

PATH=$PATH:$ORACLE_HOME/bin;export PATH

log=/tmp/session_monitor_`date +%y%m%d`.xls

cd /ora102/scripts

rm session_monitor.xls

sqlplus -s ' / as sysdba' @session_monitor.sql

echo "######################################################################################" >> $log

cat session_monitor.xls >> $log

SUBJ="`hostname` Session monitor !"

uuencode /ora102/scripts/session_monitor.xls session_monitor.xls | mail -s "$SUBJ" "$1"

#mail -s "$SUBJ" "$1" < /ora102/scripts/session_monitor.xls

Exit

 

Session_monitor.sql:

set linesize 200

set term off verify off feedback off pagesize 999

set markup html on entmap ON spool on preformat off

spool session_monitor.xls

select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') Current_Time from dual;

select machine,program,count(*) from v$session where username='SMP'  group by machine,program order by machine desc;

spool off

exit

再定制计划任务crontab即可!!

 

 

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

上一篇: DG 的一些配置
下一篇: 初级DBA
请登录后发表评论 登录
全部评论

注册时间:2011-03-04

  • 博文量
    104
  • 访问量
    239296