Oracle 定时获取并保存StatPack 报告

2020-08-19 11:10:02 浏览数 (1)

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

0 人点赞