Oracle statspack工具使用解析

賀子_DBA時代發表於2014-08-18
首先應該知道,statspack工具的作用,它是Oracle 8.1.6開始被引入的用來輔助工作人員診斷資料庫效能的工具,同過它收集的資料生成分析報告,也可以使遠端技術支援人員迅速瞭解資料庫的執行狀況,它可以透過手工方式來執行,也可以用過定時任務來進行定期取樣。
接下來展示使用過程:
一:為了能夠順利的安裝和使用statspack,可能需要設定一下兩個系統引數,
1,job_queue_processes
為了能夠建立自動任務,執行資料收集,該引數需要大於0,
SYS@ENMOEDU> alter system set job_queue_processes = 8 scope=both;             #both  是指在當前和重啟後都有效,

System altered.
2. timed_statistic     這個引數設定為true時,Oracle 將實時收集作業系統的計時資訊,這些資訊可被用來顯示時間等統計資訊,最佳化資料庫和SQL語句。
SYS@ENMOEDU> alter system set timed_statistics=true; 

System altered.
二:安裝statspack 
1.首先登入到資料庫,最好切換到$ORACLE_HOME/rdbms/admin 目錄   以便執行指令碼,
[oracle@ENMOEDU admin]$ pwd 
/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/admin 
[oracle@ENMOEDU admin]$ sqlplus / as sysdba 

SQL*Plus: Release 11.2.0.3.0 Production on Mon Aug 18 21:44:36 2014 

Copyright (c) 1982, 2011, Oracle. All rights reserved. 


Connected to: 
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production 
With the Partitioning, OLAP, Data Mining and Real Application Testing options 

SYS@ENMOEDU>
2.由於statspack需要一定的儲存空間,最好建立獨立的的表空間,如果取樣間隔短,週期較長,打算長期使用,那麼就可能需要一個大一點的表空間。(不要太小,至少要建立100M)
SYS@ENMOEDU> create tablespace dbpower datafile '/u01/app/oracle/oradata/ENMOEDU/dbpower.dbf' size 500m autoextend on ; 


Tablespace created. 
3.接下來  就開始安裝了,這期間會提示輸入預設表空間和臨時表空間的名字,
SYS@ENMOEDU>@spcreate     #直接跑指令碼就可以了     顯示以下資訊  證明你已經成功安裝了
Creating Package STATSPACK...

Package created.

No errors.
Creating Package Body STATSPACK...

Package body created.

No errors.

NOTE:
SPCPKG complete. Please check spcpkg.lis for any errors.
三:執行statspack.snap 就可以產生系統快照,執行兩次,然後執行spreport.sql   就會生成一個基於兩個時間點的報告。如果一切正常,說明安裝成功。生成的報表的名稱可以自定義,也可以預設,預設在當前目錄下生成一個報告,
PERFSTAT@ENMOEDU> execute statspack.snap 

PL/SQL procedure successfully completed.
PERFSTAT@ENMOEDU> execute statspack.snap 

PL/SQL procedure successfully completed. 

Listing all Completed Snapshots

                                                       Snap
Instance DB Name Snap Id Snap Started Level Comment
------------ ------------ --------- ----------------- ----- --------------------
ENMOEDU ENMOEDU 1 18 Aug 2014 22:02 5
                                  2 18 Aug 2014 22:02 5



Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 1
Begin Snapshot Id specified: 1

Enter value for end_snap: 10
End Snapshot Id specified: 10
注意:一個statspack的報告不能跨越一次停機,但是之前或之後的連續區間,收集的資訊依然有效,可以選擇之前或之後的取樣生成report
四:移除定時任務
先透過下面的語句查出job  號  
SYS@ENMOEDU> select JOB,LOG_USER,PRIV_USER,LAST_DATE,NEXT_DATE,INTERVAL from user_jobs;
然後
SYS@ENMOEDU> execute dbms_job.remove('查出來的job號')
五:刪除歷史資料 
刪除stats$snapshot 資料表的資料,其他表的資料也會級聯的刪除掉
SYS@ENMOEDU> select max(snap_id) from stats$snapshot; 

MAX(SNAP_ID) 
------------ 
2
SYS@ENMOEDU> delete from stats$snapshot where snap_id <=2; 

2 rows deleted.
六;可以透過執行指令碼 spdrop.sql來刪除由指令碼spcreate產生的物件; 
總結:statspack工具產生的報告不含系統資訊,不能對系統資源進行評估,這是他的一個欠缺之處,但是後來的AWR報告中有了這些內容,彌補了它的不足。



































來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29654823/viewspace-1253481/,如需轉載,請註明出處,否則將追究法律責任。

相關文章