用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: