使用statspack生成statspack report
2009-03-27 14:56:05| 分类:数据库| 标签:无|字号大中小订阅
使用statspack生成statspack report
一系统参数的设置
Alter system set job_queue_processes=6 scope=both;
Alter system set timed_statistics=true scope=both;
二安装statspack
1.用sys用户以sysdba登录到数据库,
检查数据文件的路径金额和磁盘空间,以决定数据文件的建立
Select file_name from dba_data_files
从结果中找一个合适的路径来创建表空间。
create tablespace ts_perf
datafile '/oracle/oradata/ts_perf_01.dbf'
size 200M
extent management local
segment space management auto
2.运行数据库的安装路径下/rdbms/admin目录下的spcreate.sql的安装脚本。
如果出现错误,要运行spdrop.sql的脚本删除已经创健的数据库对象,然后分析问题原因,在运行spcreate.sql 脚本。
注意:在创建过程中,当提示输入口令的时候,可以输入一个明文口令,但是要符合规范,否则创建会失败的。
安装完成后用命令
Ls *.lis
Grep ORA- *.lis
Grep err *.lis
如果有错误,就用spdrop.sql脚本来删除创建的对象。
3 测试安装好的statspack
运行statspack.snap可以产生系统快照,运行两次,然后执行spreport.sql就可以得到基于两个时间点的报告。三规划自动任务
使用spauto.sql来执行
可以修改spauto.sql脚本。来具体确定采样的时间间隔。
就修改这一句就行了。
Cd /数据库路径/rdbms/admin
Vi spauto.sql
dbms_job.submit(:jobno, 'statspack.snap;', trunc(sysdate+1/24,'HH'), 'trunc(SYSDATE+1/24,''HH'')', TRUE, :instno);
1/24 HH 每小时一次
1/48 MI 每半小时一次
1/144 MI 每十分钟一次
建议还是一个小时采集一次吧。
或者手动的定时取进行系统快照的收集。
用perstat用户登陆数据库运行这个过程。
execute statspack.snap。
四生成报告
在生成一个以上的系统快照后,可以调用spreport.sql来生成报告,然后运行sprepins.sql文件。信息备写入到一个sp_begin_end.lst的文件当中。例如:sp_1_2.lst。snap_id在1和2之间的报表。
Sql>@ /数据库的路径/rdbms/admin/spreport.sql;
Sql>@ /数据库的路径/rdbms/admin/sprepins.sql;
注意:一个报告不能跨越一次停机,也就是说报告是连续的开机时间间的报告信息。五移出定时任务
Select job,log_user,priv_user,last_date,next_date,interval from user_jobs
Sql> execute dbms_job.remove(job的标号)
注意:在完成一个采样报告后要及时删除这个任务。否则会对系统造成性能上的影响。
六删除历史数据
删除stats$snapshot数据表中的数据
Select max(snap_id) from stats$snapshot
Delete from stats$snapshot where snap_id<=max(snap_id)