文档库 最新最全的文档下载
当前位置:文档库 › statspack的安装和维护

statspack的安装和维护

1.创建PERFSTAT用户

sqlplus “/ as sysdba”
SQL> @?/rdbms/admin/spcreate
运行该脚本时系统会提示输入PERFSTAT用户的缺省表空间、临时表空间和Statspack对象创建在的表空间。脚本运行完毕就生成了一个PERFSTAT用户,授权并且创建了一些Statspack对象包括表和包。
perfstat用户缺省口令是perfstat从安全性的角度管理员应该修改它的密码。


2.采集系统运行信息,生成快照

SQL> connect perfstat/perfstat
SQL> execute statspack.snap;

对于OPS/RAC环境,你需要在你想诊断的实例上收集数据。
执行该脚本后会把数据库现在的性能参数值收集存入STATSPACK表中,该快照是一个基本快照,作为与以后快照的比较使用。

注意:为了更好地诊断数据库性能,timed_statistics参数要设为TRUE,可以在参数文件中指定或用ALTER SYSTEM SET timed_statistics=TRUE命令动态修改。(9i默认为TRUE)


看快照信息的查询命令
alter session set nls_date_format='yyyy/mm/dd hh24:mi:ss';
select * from stats$snapshot;
select snap_id,snap_time,dbid,instance_number from stats$snapshot;

3.自动收集统计数据

有两种使用方式,操作系统方式或数据库方式。

通过操作系统方式定时使用at(NT)或cron(Unix),通过数据库定时使用dbms_job包。
使用dbms_job包之前先要在参数文件中设定job_queue_processes值大于0,在perfstat用户下运行@?/rdbms/admin/spauto.sql

注意:如果是OPS/RAC环境需要在两个节点上设置job_queue_processes和运行spauto.sql脚本。


手工执行一次job的命令如下:
execute dbms_job.run(1);

删除一个job的命令如下:
execute dbms_job.remove(1);

查询系统中使用的job的情况
select job,log_user,interval,instance,last_date,last_sec from dba_jobs;

4.改变收集统计数据的间隔时间(即执行快照时间)

execute dbms_job.interval(1,'SYSDATE+(1/12)');
execute dbms_job.interval(41,'SYSDATE+(1/24)');
execute dbms_job.interval(21,'SYSDATE+(1/24)');

注意“1”是job号,这是一个不同系统会不同的数字。在运行statsauto.sql时会显示我们设定的job号。可以运行以下SQL语句进行查询:

select job, next_date, next_sec from user_jobs where job = :jobno;
JOB NEXT_DATE NEXT_SEC

---------- --------- ----------------

1 10-AUG-05 17:00:00


1/12代表1/12天即2小时。

5.生成一个性能统计报告

SQL> connect perfstat/perfstat
SQL> @?/rdbms/admin/spreport

运行该脚本时系统提示输入起始快照ID号、结束快照ID号以及REPORT文件名称。
注意:起始快照ID号、结束快照ID号之间数据库不能关闭和重启。否则系统会报错。

6. 维护操作

a.卸载statspack
SQL>connect / as sysdba
SQL>$ORACLE_HOME/rdbms/admin/spdrop.sql

用sql*plus 执行脚本,用svrmgrl(8.1.7)会导致失败
如果安装失败,一定要

用反安装程序删除

b.删除不再需要的数据(ID1-ID2)
SQL>@?/rdbms/admin/sppurge
c.删除所有的数据
SQL>@?/rdbms/admin/sptrunc

相关文档