ORACLE性能診斷―學習statspack筆記(一) [安裝與測試]

ORACLE性能診斷―學習statspack筆記(一)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

作者:劉穎博

時間:2004-3-2

mail[email protected],請指正

 

轉載請註明出處及作者

 

說明:oracle8.1.6開始引進statspackstatspack是診斷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需要的用戶是sys9i已經不存在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使用指南》一文

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章