ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 9i statspack 自动采集 crontab

9i statspack 自动采集 crontab

原创 Linux操作系统 作者:david3389 时间:2009-03-16 14:06:30 0 删除 编辑

今天做了statspack采集脚本,实现自动采集上午9点到下午6点的快照信息。特此备注,方便使用

OS:solaris 8
DB:oracle 9206

先看crontab信息:
#statspack collection
10 18 * * * /pglobal/cmxp/sprepstat.sh
20 18 * * * /pglobal/cmxp/spjobchg.sh

由于快照采集间隔是30分钟一次,所以脚本采集的是18点前的快照。


sprepstat.sh
#!/bin/sh
#set env
DATE=`date +%Y%m%d%H%M`
ORACLE_HOME=/pglobal/cmxp/oracle/app/oracle/product/9.2.0
export ORACLE_HOME
ORACLE_SID=csms3
export ORACLE_SID

$ORACLE_HOME/bin/sqlplus '/ as sysdba' <set head off;
set timing off;
spool snap_begin.lst;
select min(snap_id) snap_id
 from stats$snapshot;
spool off;
spool snap_end.lst;
select max(snap_id) snap_id
 from stats$snapshot;
spool off;
exit;
EOF

BEGIN_SNAP=`cat snap_begin.lst | tail -3 |grep -v spool|awk '{print $1}'`
END_SNAP=`cat snap_end.lst | tail -3 |grep -v spool|awk '{print $1}'`
REPORT_NAME=sp`date +%Y%m%d`_ac

$ORACLE_HOME/bin/sqlplus '/ as sysdba' <define begin_snap=$BEGIN_SNAP;
define end_snap=$END_SNAP;
define report_name=$REPORT_NAME;
@?/rdbms/admin/spreport;
exit;
EOF


spjobchg.sh
#!/bin/sh
#set env
jobdate=`date +%Y%m%d`
ORACLE_HOME=/pglobal/cmxp/oracle/app/oracle/product/9.2.0
export ORACLE_HOME
ORACLE_SID=csms3
export ORACLE_SID
$ORACLE_HOME/bin/sqlplus '/ as sysdba' <begin
  sys.dbms_job.change(job => 930,
                      what => 'statspack.snap;',
                      next_date => to_date('$jobdate 10:20:00', 'yyyymmdd hh24:mi:ss')+1,
                      interval => 'trunc(SYSDATE+1/48,''MI'')');
  commit;
end;
/
exit;
EOF

$ORACLE_HOME/bin/sqlplus '/ as sysdba' <delete from stats$snapshot;
commit;
exit;
EOF

 

第一个脚本是采集信息,第二个脚本是修改JOB的时间,我不想在18点以后继续收集,因为我们晚上要跑大量的后台应用JOB,还有备份,所以不想这个时侯占资源。占表空间,并一次删除,不留历史记录,如果参考我的做法的话,请酌情处理这个部分。

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

请登录后发表评论 登录
全部评论

注册时间:2008-11-17

  • 博文量
    19
  • 访问量
    120527