ITPub博客

首页 > Linux操作系统 > Linux操作系统 > statspack 安裝以及相關參數說明

statspack 安裝以及相關參數說明

原创 Linux操作系统 作者:aishu521 时间:2013-01-07 10:00:36 0 删除 编辑
1,檢查參數
SQL> show parameter job_qu
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes                  integer     10
SQL> show parameter timed_sta
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
timed_statistics                     boolean     TRUE
SQL> create tablespace perfstat
  2  datafile '/u02/oradata/zdtdbat5/perfsta.dbf' size 500m
  3  autoextend on next 32M;
Tablespace created.
2,執行路徑
SQL> ! pwd
/u01/app/oracle/product/10.2.0/db_1/rdbms/admin

3.sqlplus 执行脚本:
@?\rdbms\admin\spcreate.sql
输入 perfstat_password 的值:  perfstat
输入 default_tablespace 的值:  perfstat
输入 temporary_tablespace 的值: temp
4,可以查看生成的文件報告
[oracle@zdtdbat4 admin]$ ls *.lis
spcpkg.lis  spctab.lis  spcusr.lis
执行一次简单的操作:
以perfstat用户连接,如果你刚执行完@spcreate,则oracle默认将当前用户切换为perfstat。
首先生成两次采样。
5,開始採樣
SQL>execute statspack.snap

PL/SQL procedure successfullycompleted.

SQL>execute statspack.snap

PL/SQL procedure successfullycompleted.

执行@spreport生成报告(该文件物理存放路径与spcreate相同)。

6,生成報告
SQL> @spreport
输入 begin_snap 的值:  1
Begin Snapshot Id specified: 1

输入 end_snap 的值:  2
End   Snapshot Id specified: 2
Specify the Report Name  test

End of Report ( test.lst )
7,規劃自動任務
設定定時執行任務,開始收集數據了,使用spatuo.sql來定義任務
[oracle@zdtdbat4 admin]$ ls spa*
spauto.sql
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 HH   每小時一次
1/48 MI   每半時一次
1/144 MI  每十五分鐘一次
1/288 MI   每5分鐘一次
可以修改時間點來修改執行頻率
begin
  select instance_number into :instno from v$instance;
  dbms_job.submit(:jobno, 'statspack.snap;', trunc(sysdate+1/48,'MI'), 'trunc(SYSDATE+1/24,''HH'')', TRUE, :instno);
  commit;
end;
執行@spauto.sql使得生效。
SQL> @spauto.sql
PL/SQL procedure successfully completed.

Job number for automated statistics collection for this instance
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Note that this job number is needed when modifying or removing
the job:
     JOBNO
----------
        21

Next scheduled run
~~~~~~~~~~~~~~~~~~
The next scheduled run for this job is:
       JOB NEXT_DATE NEXT_SEC
---------- --------- ----------------
        21 07-JAN-13 09:40:00
一個statspack的報告不能跨越一次停機 但之前或之後收集信息依然有效。跨越選擇前後的報告report
8,移除定時執行任務
SQL> select job,log_user,priv_user,last_date,next_Date,interval from user_jobs;
       JOB LOG_USER                       PRIV_USER
---------- ------------------------------ ------------------------------
LAST_DATE NEXT_DATE
--------- ---------
INTERVAL
------------------------------------------------------------------------------
        21 PERFSTAT                       PERFSTAT
          07-JAN-13
trunc(SYSDATE+1/24,'HH')
SQL> execute dbms_job_.remove('21');
9,刪除歷史數據
SQL> select max(snap_id) from stats$snapshot;
MAX(SNAP_ID)
------------
           2
SQL> delete from stats$snapshot snap_id<2;
你可以更改snap_id的範圍保留需要的數據
,你可以查看到相關的表都鎖定
select a.OBJECT_ID,a.ORACLE_USERNAME,b.object_name
from v$locked_object a ,dba_objects b
where a.OBJECT_ID=b.object_id
10,其他重要腳本
  a,在診斷系統問題時,可能需要向專業人士提供數據 可以導出statspack 表數據
用的是  spuexp.par
[oracle@zdtdbat4 admin]$ ls spuexp.par
spuexp.par
[oracle@zdtdbat4 admin]$ exp userid=perfstat/my perfstat password parfile=spuexp.par
  b,sqdrop.sql 在執行主要兩個腳本spdtabl.sql ,spdusr.sql
11,調整statspack的收集門限
  兩種類型
 級別(level):控制收集數據的類型
 門限(shreshold)   設置收集的數據的閥值
 a,級別 默認是5
 0,一般性統計,包含等待事件,系統事件,系統統計,回滾段統計,行緩存,sga,會話,鎖,緩衝池統計等
 5,增加sql語句統計
 10,增加子鎖統計 stats$sql_summary中
修改設置級別。
sql > execute statspack.snap(i_snap_level=>0,i_modify_parameter=>'true');
如果執行修改本次
sql > execute statspack.snap(i_snap_level=>0);
 b,快照門限
 門限只應用于stats$sql_summary
 各種門限
 a  executions_sh sql語句執行數量 默認100
 b  disk_reads_tn 執行磁盤讀入數量 默認1000
 c  parse_call_th  執行解析調用數量 默認1000
 d  buffer_gets_th  執行緩衝區獲取得數量 默認1000
修改門限默認值
sql > execute statspack.modify statspack parameter(i buffer gets th=>1000000,i disk reads th=>100000;
 
 
注意: 执行的时候记得用用户:perfstat 或者报错
ERROR at line 1:
ORA-20200: Begin Snapshot Id
2 does not exist for this database/instance
ORA-06512: at line 28

         1,执行 exec statspack.snap
          2,执行 @?/rdbms/admin/spreport
         就生成报表了.

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15187685/viewspace-752221/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: profile使用
请登录后发表评论 登录
全部评论

注册时间:2012-05-26

  • 博文量
    139
  • 访问量
    721098