ORACLE性能诊断―学习statspack笔记(一) [安装与测试]

** ORACLE ** ** 性能诊断― ** ** 学习 statspack ** ** 笔记(一) **


** 作者:刘颖博 **

** 时间: 2004-3-2 **

** mail ** ** : [email protected] ** ** ,请指正 **


** 转载请注明出处及作者 **


** 说明: oracle8.1.6 ** ** 开始引进 statspack ** ** , statspack ** ** 是诊断 oracle ** ** 性能的强有力的工具 **


** 安装前准备 **


** A. ** 首先是系统参数的确认:

job_query_processes :为了建立自动任务,执行数据收集,该参数要大于 0

time_statistics :为了收集操作系统计时信息等,需要将其设置为 TRUE

** B. ** 建议最好是单独的为 perfstat 用户(即安装 statspack 要建的用户)单独建立数据表空间和临时表空间,数据表空间至少要有 100M 的空闲空间,否则创建 statspack 对象会失败,如果打算长期使用 statspack ,可以考虑建稍大些的数据表空间。

** 安装 **

** A. ** 安装脚本

安装的脚本所在目录是 $ORACLE_HOME/rdbms/admin ,在 oracle8.1.6 版本安装脚本是 statscre.sql ,之后 8.1.7 版本开始就是 spcreate.sql ,安装所需用户在 9i 之前的需要 internal 或者拥有 sysdba 权限的用户, 9i 需要的用户是 sys ( 9i 已经不存在 internal 用户了)

执行安装脚本如下:

SQL> @$ORACLE_HOME/rdbms/admin/spcreate

** B. ** 在安装过程中,需要填写 perfstat 用户的密码,并且选择 perfstat 用户的数据表空间和临时表空间,安装完成之后,察看相应的 .lis 文件检查安装是否正确无误,有问题可以通过 spdrop.sql 完成 statspack 的卸载,重新运行 spcreate.sql 完成 statspack 的安装。

** 测试 **

最简单的 statspack 报告生成,运行两次 statspack.snap ,然后运行 spreport.sql 生成一个基于两个时间点的报告。如果是 8.1.7.3 之前版本的 Oracle ,需要修改 spcpkg.sql ,要将 substr 修改为 substrb ,如下位置:

select l_snap_id

, p_dbid

, p_instance_number

, substr(sql_text,1,31) à substrb(sql_text,1,31)

建立简单的 statspack 报告过程如下:

SQL> execute statspack.snap

PL/SQL procedure successfully completed.

SQL> execute statspack.snap

PL/SQL procedure successfully completed.

SQL> @$ORACLE_HOME/rdbms/admin/spreport

Spreport 的执行过程中会列出需要选择的快照,你需要填写该报告描述的开始和结束的快照序号,并填写报告的文件名,当然可以不填,使用默认的报告文件名,默认的会生成在目录 $ORACLE_HOME/rdbms/admin 中

这样就可以验证 statspack 已经正确的安装完成了

** 自动收集 statspack ** ** 快照 **

正常在真正的环境下,我们是需要连续的采样一段时间,这样生成的 statspack 才能更好的反映系统的现状,我们是可以通过 spauto.sql 来自动收集数据的。

主要可能会设计到修改如下部分的内容

variable jobno number;

variable instno number;

begin

select instance_number into :instno from v$instance;

dbms_job.submit(:jobno, 'statspack.snap;', trunc(sysdate+1/24,'HH'), 'trunc(SYSDATE+1/24,''HH'')', TRUE, :instno);

commit;

end;

/

主要是修改 1/24 这个值,目前是一个小时自动收集一次数据,如果要改动为半个小时收集一次数据就修改为 1/48, 同理,进行或大或小的修改。

执行后,可以在 spauto.lis 文件中看到当前自动收集数据的 job 号等信息。当想要生成 statspack 报告的时候,只要选择任何两个不跨越停机时间的快照序号就可以了。注意, statspack 是不能跨越停机的。

(待续)

……………………………………………………………………………………

感谢 eygle 和他的《 statspack 使用指南》一文

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus