StatsPack 是9i使用的性能分析工具,如果建立数据库的时候没有,可以手动创建
新建perfstat表空间
代码语言:javascript复制create tablespace PERFSTAT LOGGING DATAFILE '/oradata/mescp/perfstat01.dbf' SIZE 2048M AUTOEXTEND off
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
新建相关用户和表表
代码语言:javascript复制sqlplus "/ as sysdba"
SQL> @?/rdbms/admin/spcreate.sql
设置自动执行
代码语言:javascript复制SQL>@?/rdbms/admin/spauto.sql
清除statpack信息
代码语言:javascript复制SQL>@?/rdbms/admin/sptrunc.sql
删除statpack
代码语言:javascript复制@?/rdbms/admin/spdrop.sql
自动获取statpack报告
我们可以利用下面的脚本定时获取并保存前一个小时的sp报告
代码语言:javascript复制0 * * * * /oraassy/home/sp.sh
代码语言:javascript复制vim sp.sh
#!/bin/sh
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_OWNER=oracle
export ORACLE_BASE=/oraassy/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
export ORACLE_SID=mesassy
date=`date '%y%m%d%H'`
spfile="/expbackup/statpack/spreport_$date.lst"
$ORACLE_HOME/bin/sqlplus perfstat/perfstat@$ORACLE_SID << EOF
column esnap new_value end_snap noprint
select max(snap_id) as esnap from stats$snapshot;
column bsnap new_value begin_snap noprint
select max(snap_id)-1 as bsnap from stats$snapshot;
define report_name=$spfile
@?/rdbms/admin/spreport
EOF