分类: Oracle
2008-05-24 15:56:35
来源: |
|
说明:oracle8.1.6开始引进statspack,statspack是诊断oracle的强有力的工具 安装前准备 A.首先是系统参数的确认: B.建议最好是单独的为perfstat用户(即安装statspack要建的用户)单独建立数据表空间和临时表空间,数据表空间至少要有100M的空闲空间,否则创建statspack对象会失败,如果打算长期使用statspack,可以考虑建稍大些的数据表空间。 安装 A.安装脚本 执行安装脚本如下: 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; / 执行后,可以在spauto.lis文件中看到当前自动收集数据的job号等信息。当想要生成statspack报告的时候,只要选择任何两个不跨越停机时间的快照序号就可以了。注意,statspack是不能跨越停机的。 |