Oracle 9i配置Statspack工具

來源:互聯網
上載者:User

Oracle自診斷工具對日常效能診斷作用很大。從Oracle 8開始,Oracle就在不斷地推進綜合性的自診斷工具包發展。從最早的Statspack到現在的AWR、ADDM,Oracle正向著自診斷、智能化的方向發展。
 
Statspack作為Oracle早期推出的工具包,最早出現在Oracle 8,在9i版本中獲得廣泛的應用。從發展曆程上,Statspack奠定了現有AWR的基本工作原理和指標方式。AWR是在Statspack的基礎上進行的完善發展。
 
在一些老系統中,9i依然是資料庫主要環境系統,Statspack的診斷功能是需要的。本篇介紹9i環境下Statspack工具安裝使用,以及執行計畫抽取等常用方法。
 
--------------------------------------分割線 --------------------------------------

相關閱讀:

細化解析Oracle 10g Statspack的新功能

Oracle中暗藏的珍寶:Statspack

使用Statspack進行Oracle效能分析

Oracle Statspack安裝使用攻略

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 <return> without

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 <return> to continue, otherwise enter an alternative.

 

輸入 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在採樣控制上靈活性是比較高的。不同的設定可以有不同的診斷層次層級。下篇中我們進行詳細的討論。

更多詳情見請繼續閱讀下一頁的精彩內容:

  • 1
  • 2
  • 下一頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.