用SHELL Script 自动生成statspack report

上一篇 / 下一篇  2006-10-18 00:00:00 / 个人分类:My Oracle Article

论坛上有人询问在存在statspack data的情况下,如何自动生成 N 个连续的report 的问题

快照20 分钟生成一次以后,比方说现在有了如下的快照:
1,2,3,4,5,6,......
我想自动生成或者使用shell生成相邻间隔的快照的报告,有没有方法可以做到?

顺手写了一个Script, 可以自动生成N 个连续的report

全文为 具体的Script


几个地方需要有所改动
第一个就是
user/pass/targetDB
另外
select snap_id from stats$snapshot
where snap_time > sysdate - 1
改成你需要的时间段,或者是全部
另外,把 sprepins 或者 spreport.sql 里面的 set termout on 全改为 set termout on 有利于 运行时不会在屏幕中输出太多信息,当然,不改也可以

另外,是随便写的,没有认真测试过……

还有,有些OS 没有/bin/ksh 的,可以改为 /bin/bash

#!/bin/ksh

#Script to auto genarate statspack report

# Coding by Serol Luo,
rollingpig@163.com

username=perfstat

pass
=perfstat

targetdb
=testdb
function snap_id_list {
sqlplus -S $username/$pass@$targetdb <<EOF

set pages 0 termout off verify off feedback off

select snap_id from stats$snapshot

where snap_time
> sysdate - 1

order by snap_id
;

exit
EOF
}
snap_id_list
for snap_id_line in `snap_id_list` ; do
bid="$eid"
eid="$snap_id_line"
if [ "$bid" != "" ] ; then

sqlplus
-s $username/$pass@$targetdb <<EOF

set verify off termout off serverout off

define begin_snap
=$bid;
define end_snap=$eid;

@?/
rdbms/admin/spreport




exit
EOF

fi

done
#End Of Script


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-09-06  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 1498
  • 日志数: 443
  • 建立时间: 2007-12-26
  • 更新时间: 2008-08-06

RSS订阅

Open Toolbar