Oracle 9i配置Statspack工具(上)
Oracle自診斷工具對日常效能診斷作用很大。從Oracle 8開始,Oracle就在不斷地推進綜合性的自診斷工具包發展。從最早的Statspack到現在的AWR、ADDM,Oracle正向著自診斷、智慧化的方向發展。
Statspack作為Oracle早期推出的工具包,最早出現在Oracle 8,在9i版本中獲得廣泛的應用。從發展歷程上,Statspack奠定了現有AWR的基本工作原理和指標方式。AWR是在Statspack的基礎上進行的完善發展。
在一些老系統中,9i依然是資料庫主要環境系統,Statspack的診斷功能是需要的。本篇介紹9i環境下Statspack工具安裝使用,以及執行計劃抽取等常用方法。
1、Statspack安裝解除安裝
預設情況下,Statspack是不會作為預設選項安裝的。由於10g版本下AWR的存在,一般情況下我們也不需要額外安裝過時的Statspack包。我們著重介紹一下如何實現9i環境的安裝。
SQL> select * from v$version;
BANNER
----------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
PL/SQL Release 9.2.0.1.0 - Production
CORE 9.2.0.1.0 Production
TNS for 32-bit Windows: Version 9.2.0.1.0 - Production
NLSRTL Version 9.2.0.1.0 – Production
簡單的說,statspack工具包就是PL/SQL儲存過程包和一系列Snapshot基礎資訊表構成的小程式。保留的Snapshot執行資料需要額外的儲存空間進行儲存,所以建議建立額外的表空間儲存進行資料保留。
SQL> create tablespace stptbl datafile 'C:\ORACLE\ORADATA\ORA9I\STPTBL01.dbf' size 500m autoextend on
2 extent management local uniform size 1m
3 segment space management auto;
Tablespace created
注意:同AWR自動的儲存管理不同,Statspack的snapshot是沒有自動刪除的機制的。也就是說,如果我們放任不管,手工收集的映象資料會一直儲存在資料庫中。所以,如果經常使用Statspack進行效能資料收集工作,一定不能忽視空間問題。
在9i中,我們需要呼叫伺服器端的指令碼來完成建立。注意:這裡面我們儘量到伺服器端執行,呼叫伺服器端指令碼,來防止由於版本不同帶來的問題。
SQL> show user
USER 為"SYS"
SQL> @?\rdbms\admin\spcreate
... Installing Required Packages
同義詞已建立。
... Creating PERFSTAT user ...
Choose the PERFSTAT user's password.
Not specifying a password will result in the installation FAILING
Specify PERFSTAT password
輸入 perfstat_password 的值: perfstat
perfstat
PL/SQL 過程已成功完成。
使用者已建立
授權成功。
Below are the list of online tablespaces in this database.
Decide which tablespace you wish to create the STATSPACK tables and indexes. This will also be the PERFSTAT user's default tablespace.
Specifying the SYSTEM tablespace will result in the installation
FAILING, as using SYSTEM for performance data is not supported.
TABLESPACE_NAME CONTENTS
------------------------------------------------------------ -----------------
CWMLITE
PERMANENT
已選擇12行。
Specify PERFSTAT user's default tablespace
輸入 default_tablespace 的值: STPTBL
Using STPTBL for the default tablespace
PL/SQL 過程已成功完成。
Choose the PERFSTAT user's temporary tablespace.
Specifying the SYSTEM tablespace will result in the installation
FAILING, as using SYSTEM for the temporary tablespace is not recommended.
Specify PERFSTAT user's temporary tablespace.
輸入 temporary_tablespace 的值: TEMP
同義詞已建立。
NOTE:
SPCPKG complete. Please check spcpkg.lis for any errors.
指令碼spcreate的過程是一個互動式過程。執行過程中我們需要確認三個引數專案:建立使用者perfstat的密碼、資料表空間和臨時表空間。
這個過程設定中,要注意一點:單獨使用一個資料表空間作為statspack儲存,不要將其放在system裡面。
解除安裝Statspack是比較簡單的,相同目錄中的指令碼spdrop就可以了,本文不進行累述了。
2、Statspack使用
本質上說,Statspack和AWR相同,都是一種基於取樣Sampling的效能監控工具。在早期的版本中,Oracle已經推出了一系列的動態檢視來反映資料庫和系統“實時”效能情況。而所謂的Snapshot就是在某一個時間點,Oracle程式將這些實時資料保留下來,作為一個snapshot點記錄在資料庫表中。Statspack和AWR報告都是基於多個Snapshot的做差來形成的。
Statspack和AWR最明顯的差異在於Statspack預設是不會自動進行Snapshot動作,而AWR預設是提供每一小時進行取樣的功能的。
所以說,AWR便於進行故障時段分析,而Statspack需要故障中或者故障重演。預設執行statspack映象的方法很簡單。
SQL> conn perfstat/perfstat@ora9i
Connected to Oracle9i Enterprise Edition Release 9.2.0.1.0
Connected as perfstat
SQL> exec statspack.SNAP;
PL/SQL procedure successfully completed
呼叫statspack包的snap方法,可以直接收集snapshot。此時採用預設的收集策略。基礎表stats$snapshot可以檢視到儲存的資訊。
SQL> select snap_id, dbid, to_char(snap_time, 'yyyy-mm-dd hh24:mi:ss') snap_time, snap_level from stats$snapshot;
SNAP_ID DBID SNAP_TIME SNAP_LEVEL
------- ---------- ------------------- ----------
1 2629872507 2014-02-07 10:51:30 5
注意:我們此處採用了Oracle的預設配置。snapshot方法映象,我們有很多的選擇餘地。這些內容留待我們之後討論。此處目標是建立出一個snapshot。
如果觀察perfstat使用者下的資料表,我們會發現很多以stats$作為字首的資料表。這些表中儲存的資料就是以snapshot為引領的效能資料。
同AWR一樣,生成statspack報告最少要有兩個snapshot形成,而且snapshot中間不允許關機啟動動作。
SQL> exec statspack.SNAP;
PL/SQL procedure successfully completed
SQL> select snap_id, dbid, to_char(snap_time, 'yyyy-mm-dd hh24:mi:ss') snap_time, snap_level from stats$snapshot;
SNAP_ID DBID SNAP_TIME SNAP_LEVEL
------- ---------- ------------------- ----------
1 2629872507 2014-02-07 10:51:30 5
2 2629872507 2014-02-07 11:05:00 5
在建立出兩個報告的情況下,我們就可以生成報告了。注意:Statspack和AWR報告在生成過程中,有細微差別。Statspack是呼叫客戶端指令碼,而AWR核心程式在伺服器端的程式包裡面。所以,強烈推薦使用伺服器端進行報告生成動作。
SQL> conn perfstat/perfstat@ora9i
已連線。
SQL>
SQL> @?/rdbms/admin/spreport //生成指令碼
Current Instance
~~~~~~~~~~~~~~~~
DB Id DB Name Inst Num Instance
----------- ------------ -------- ------------
2629872507 ORA9I 1 ora9i
Instances in this Statspack schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DB Id Inst Num DB Name Instance Host
----------- -------- ------------ ------------ ------------
2629872507 1 ORA9I ora9i ACCA-8535F03
015
Using 2629872507 for database Id
Using 1 for instance number
Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed. Pressing
specifying a number lists all completed snapshots.
Snap
Instance DB Name Snap Id Snap Started Level Comment
------------ ------------ --------- ----------------- ----- -------------------
ora9i ORA9I 1 07 2月 2014 10:5 5
1
2 07 2月 2014 11:0 5
5
Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
輸入 begin_snap 的值: 1
Begin Snapshot Id specified: 1
輸入 end_snap 的值: 2
End Snapshot Id specified: 2
Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is sp_1_2. To use this name,
press
輸入 report_name 的值:
Using the report name sp_1_2
篇幅原因,指令碼部分內容省略。同AWR報告生成相同,statspack報告需要互動方式提供三個資料:起始終值snapshot編號、生成報告名稱。區別於AWR的html和text雙格式報告,statspack支援text格式報告。
最後生成報告片段如下:
STATSPACK report for
DB Name DB Id Instance Inst Num Release Cluster Host
------------ ----------- ------------ -------- ----------- ------- ------------
ORA9I 2629872507 ora9i 1 9.2.0.1.0 NO ACCA-8535F03
015
Snap Id Snap Time Sessions Curs/Sess Comment
------- ------------------ -------- --------- -------------------
Begin Snap: 1 07-2月 -14 10:51:30 10 4.5
End Snap: 2 07-2月 -14 11:05:00 10 6.4
Elapsed: 13.50 (mins)
報告生成,其中包括我們比較熟悉的Top n系列診斷內容。
瞭解了statspack基本功能之後,我們還要進行探索。相對於AWR,Statspack在取樣控制上靈活性是比較高的。不同的設定可以有不同的診斷層次級別。下篇中我們進行詳細的討論。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8494287/viewspace-1351125/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 9i配置Statspack工具(下)Oracle
- ORACLE 9i statspack使用Oracle
- Oracle 9i statspack 使用手冊Oracle
- oracle 9i statspack詳細講解Oracle
- Oracle statspack工具使用解析Oracle
- oracle 9i stream配置備記Oracle
- Oracle之StatspackOracle
- statspack的安裝配置
- oracle statspack詳解Oracle
- Oracle Statspack的使用Oracle
- Oracle statspack綜合分析Oracle
- oracle statspack 詳解Oracle
- Oracle Statspack ReportOracle
- jive+oracle 9i 配置問題 急!!~~~Oracle
- Oracle 9i LogMiner工具使用說明Oracle
- RHEL5.3上安裝oracle 9iOracle
- Oracle 9i R2 配置 Logical StandbyOracle
- Oracle 9i 在AIX上的安裝 (轉)OracleAI
- Oracle 9i 配置備用資料庫步驟Oracle資料庫
- oracle 9i physical standby database 上的v$archived_logOracleDatabaseHive
- 在oracle 10.2.0.4上配置字符集掃描工具Csscan(一)OracleCSS
- oracle statspack 安裝詳解---03Oracle
- Don't overlook STATSPACK in Oracle 10gOracle 10g
- Oracle Statspack各項指標含義Oracle指標
- oracle10g statspack--安裝Oracle
- oracle 9i database 在win2k server上搬家(轉摘)OracleDatabaseServer
- Oracle 9i安裝Oracle
- Uninstall Oracle 9iOracle
- oracle 9i 閃回Oracle
- oracle 9i index bug?OracleIndex
- Oracle 9I dataguard(standby)Oracle
- Statspack之一-Statspack簡介
- Statspack之三-安裝statspack
- Oracle 資料庫歸檔配置-9i,10g,11gOracle資料庫
- 配置oracle 9i physical standby database時,duplicate命令的執行記錄OracleDatabase
- Oracle統計資訊以及statspack怎麼使用Oracle
- oracle 9i 在XP系統上無法安裝的問題Oracle
- oracle 9i 開啟autotrace onOracle