statspack 安裝以及相關引數說明
1,檢查引數
SQL> show parameter job_qu
SQL> show parameter job_qu
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes integer 10
SQL> show parameter timed_sta
------------------------------------ ----------- ------------------------------
job_queue_processes integer 10
SQL> show parameter timed_sta
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
timed_statistics boolean TRUE
------------------------------------ ----------- ------------------------------
timed_statistics boolean TRUE
SQL> create tablespace perfstat
2 datafile '/u02/oradata/zdtdbat5/perfsta.dbf' size 500m
3 autoextend on next 32M;
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
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
[oracle@zdtdbat4 admin]$ ls *.lis
spcpkg.lis spctab.lis spcusr.lis
執行一次簡單的操作:
以perfstat使用者連線,如果你剛執行完@spcreate,則oracle預設將當前使用者切換為perfstat。
首先生成兩次取樣。
5,開始取樣
SQL>execute statspack.snap
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;
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;
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
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
----------
21
Next scheduled run
~~~~~~~~~~~~~~~~~~
The next scheduled run for this job is:
JOB NEXT_DATE NEXT_SEC
---------- --------- ----------------
21 07-JAN-13 09:40:00
---------- --------- ----------------
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;
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;
---------- ------------------------------ ------------------------------
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;
------------
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
,你可以檢視到相關的表都鎖定
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;
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
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部落格 ” ,連結:http://blog.itpub.net/15187685/viewspace-752221/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql innodb相關引數說明MySql
- mysql relay log相關引數說明MySql
- Kafka 配置引數彙總及相關說明Kafka
- oracle安裝記憶體引數說明Oracle記憶體
- Oracle GoldenGate系統之----相關引數說明OracleGo
- ORACLE安裝引數sysctl.conf說明Oracle
- MySQL 5.5編譯安裝cmake引數說明MySql編譯
- oracle 安裝相關引數設定Oracle
- 幾個和MySQL InnoDB相關的引數設定說明MySql
- 網頁上的Mediaplayer播放器相關引數說明網頁播放器
- Oracle安裝相關Linux引數(轉)OracleLinux
- 【轉】Oracle安裝相關Linux引數OracleLinux
- TOP引數說明
- mysqldump引數說明MySql
- mysqldump 引數說明MySql
- MySQL引數說明MySql
- 【AMM】關於ASM中AMM引數說明ASM
- Statspack分析報告說明
- Oracle8i,9i Standby引數設定及相關說明Oracle
- Elasticsearch 引數配置說明Elasticsearch
- kafka 引數配置說明Kafka
- redis 3.0 引數說明Redis
- golden gate 引數說明Go
- oracle引數說明(zt)Oracle
- MySQL 5.7 自增欄位相關引數說明MySql
- Oracle sessions,processes 和 transactions 引數 關係 說明OracleSession
- Oracle的AMM和ASMM以及相關引數探究OracleASM
- exp,imp相關工具說明
- tesseract安裝說明
- 關於BUGZILLA的說明和安裝
- Oracle Table建立引數說明Oracle
- Oracle Table 建立引數 說明Oracle
- mysqldump引數詳細說明MySql
- mosquitto命令引數說明UI
- Oracle Sequence Cache 引數說明Oracle
- 【MYSQL】MHA引數列表說明MySql
- Mysql JDBC Url引數說明MySqlJDBC
- LINUX下安裝ORACLE的常用設定引數及環境變數說明LinuxOracle變數