說明
Oracle
開始引進statspack
statspack是診斷oracle性能的強有力的工具
安裝前准備 A
首先是系統參數的確認
job_query_processes
為了建立自動任務
執行數據收集
該參數要大於
time_statistics
為了收集操作系統計時信息等
需要將其設置為TRUE
B
建議最好是單獨的為perfstat用戶(即安裝statspack要建的用戶)單獨建立數據表空間和臨時表空間
數據表空間至少要有
M的空閒空間
否則創建statspack對象會失敗
如果打算長期使用statspack
可以考慮建稍大些的數據表空間
安裝 A
安裝腳本
安裝的腳本所在目錄是$ORACLE_HOME/rdbms/admin
在oracle
版本安裝腳本是statscre
sql
之後
版本開始就是spcreate
sql
安裝所需用戶在
i之前的需要internal或者擁有sysdba權限的用戶
i需要的用戶是sys(
i已經不存在internal用戶了)
執行安裝腳本如下
SQL> @$ORACLE_HOME/rdbms/admin/spcreate
B
在安裝過程中
需要填寫perfstat用戶的密碼
並且選擇perfstat用戶的數據表空間和臨時表空間
安裝完成之後
察看相應的
lis文件檢查安裝是否正確無誤
有問題可以通過spdrop
sql完成statspack的卸載
重新運行spcreate
sql完成statspack的安裝
測試 最簡單的statspack報告生成
運行兩次statspack
snap
然後運行spreport
sql生成一個基於兩個時間點的報告
如果是
之前版本的Oracle
需要修改spcpkg
sql
要將substr修改為substrb
如下位置
select l_snap_id
p_dbid
p_instance_number
substr(sql_text
) à substrb(sql_text
)
建立簡單的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+
/
HH
)
trunc(SYSDATE+
/
HH
)
TRUE
:instno);
commit;
end;
/
主要是修改
/
這個值
目前是一個小時自動收集一次數據
如果要改動為半個小時收集一次數據就修改為
/
同理
進行或大或小的修改
執行後
可以在spauto
lis文件中看到當前自動收集數據的job號等信息
當想要生成statspack報告的時候
只要選擇任何兩個不跨越停機時間的快照序號就可以了
注意
statspack是不能跨越停機的
From:http://tw.wingwit.com/Article/program/Oracle/201311/18772.html