Statspack的安裝使用說明
2024-07-21 02:33:44
供稿:網友
在數據庫治理中,Oracle提供的statspack是一個很強大的工具,通過Statspack,可以收集系統信息,診斷數據庫故障,也方便第三方技術支持進行遠程閱讀和建議。
看到很多人還不太了解這個工具的使用,論壇上同樣的問題很多,所以寫了一下一個說明文檔,主要涉及安裝配置和數據收集。
關于參數說明和性能部分還在繼續進行中。
先帖一部分寫完的出來,希望通過這些文字可以使不了解的朋友學會怎樣配置和使用Statspack!
下面是正文:
Oracle Statspack 從Oracle8.1.6開始被引入Oracle,并馬上成為DBA和Oracle專家用來診斷數據庫性能的強有力的工具。通過Statspack我們可以很輕易的確定Oracle數據庫的瓶頸所
在,記錄數據庫性能狀態。因此了解和使用Statspack對于DBA來說至關重要。
在數據庫中Statspack的腳本位于$ORACLE_HOME/RDBMS/ADMIN目錄下,對于ORACLE8.1.6,是一組以stat開頭的文件;對于ORACLE8.1.7,是一組以sp開頭的文件。
在Oracle8.1.6中,Statspack第一次發布,但是你也可以在以下鏈接找到可用于Oracle80~Oracle8.1.5的版本。
http://www.oracle.com/oramag/oracle...tml?o20tun.Html
http://www.oracle.com/oramag/oracle...pack-other.html
在816以前的版本使用Statspack,你需要使用statscbps.sql腳本建立一個v$buffer_pool_statistics視圖,該腳本包含在以上鏈接下載的tar文件中。
訪問該鏈接,你可能需要一個OTN帳號,申請該帳號是免費的。
在Statspack發布之前,我們通常能夠使用診斷數據庫的工具是兩個腳本UTLBSTAT.SQL和UTLESTAT.SQL,BSTAT/ESTAT是一個非常簡單的性能診斷工具。UTLBSTAT獲得開始時很多
V$視圖的快照,UTLESTAT通過先前的快照和當前視圖生成一個報表。實際上通過這個報表我們很難讀出或者解釋系統性能方面的問題。Statspack改變了這一切,通過連續的數據收集,
Statspack能給我們提供至關重要的趨勢分析。這是一個巨大的進步。
下面我們來講一講Statspack的安裝,配置,使用,解讀
一. 系統參數
為了能夠順利安裝和運行Statspack你可能需要設置以下系統參數:
1. job_queue_PRocesses
為了能夠建立自動任務,執行數據收集,該參數需要大于0。你可以在初試化參數文件中修改該參數。
2. timed_statistics
收集操作系統的計時信息,這些信息可被用來顯示時間等統計信息、優化數據庫和 SQL 語句。要防止因從操作系統請求時間而引起的開銷,請將該值設置為False。
使用statspack收集統計信息時建議將該值設置為 TRUE,否則收集的統計信息大約只能起到10%的作用,將timed_statistics設置為True所帶來的性能影響與好處相比是微不足道的。
該參數使收集的時間信息存儲在在V$SESSTATS 和V$SYSSTATS 動態性能視圖中。
Timed_statistics參數可以在實例級進行更改
SQL> alter system set timed_statistics = true;
System altered
SQL>
二. 安裝Statspack
安裝Statspack需要用internal身份登陸,或者擁有SYSDBA(connect / as sysdba)權限的用戶登陸。需要在本地安裝或者通過telnet登陸到服務器。
在Oracle8.1.6版本中運行statscre.sql;在Oracle8.1.7版本中運行spcreate.sql。
首先登陸到數據庫,最好轉到$ORACLE_HOME/RDBMS/ADMIN目錄,這樣我們執行腳本就可以方便些。
D:/>cd oracle/ora81/rdbms/admin
D:/oracle/ora81/RDBMS/ADMIN>sqlplus internal
SQL*Plus: Release 8.1.7.0.0 - ProdUCtion on 星期二 12月 3 16:54:53 2002
(c) Copyright 2000 Oracle Corporation. All rights reserved.
請輸入口令:
連接到:
Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production
SQL> select instance_name,host_name,version,startup_time from v$instance;
INSTANCE_NAME
----------------
HOST_NAME
----------------------------------------------------------------
VERSION STARTUP_TI
----------------- ----------
eygle
AM-SERVER
8.1.7.0.0 22-11月-02
SQL>
檢查數據文件路徑及磁盤空間,以決定創建數據文件的位置:
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
D:/ORACLE/ORADATA/EYGLE/SYSTEM01.DBF
D:/ORACLE/ORADATA/EYGLE/RBS01.DBF
D:/ORACLE/ORADATA/EYGLE/USERS01.DBF
D:/ORACLE/ORADATA/EYGLE/TEMP01.DBF
D:/ORACLE/ORADATA/EYGLE/TOOLS01.DBF
D:/ORACLE/ORADATA/EYGLE/INDX01.DBF
D:/ORACLE/ORADATA/EYGLE/DR01.DBF
D:/ORACLE/ORADATA/EYGLE/GGQIANG01.DBF
D:/ORACLE/ORADATA/EYGLE/EQSP01.DBF
D:/ORACLE/ORA81/DATABASE/MP5_DATA.DBF
D:/ORACLE/ORA81/DATABASE/MP5_INDX.DBF
D:/ORACLE/ORA81/DATABASE/MP5_TEMP.DBF
D:/ORACLE/ORA81/DATABASE/MP5_IDNX.DBF
D:/ORACLE/ORADATA/EYGLE/HRM01.DBF
D:/ORACLE/ORADATA/EYGLE/TIB.DBF
D:/ORACLE/ORADATA/EYGLE/EQSP02.DBF
D:/ORACLE/ORADATA/EYGLE/RMAN_TS.DBF
D:/ORACLE/ORADATA/EYGLE/EQSP03.DBF
D:/ORACLE/ORADATA/EYGLE/EAPP01.DBF
D:/ORACLE/ORADATA/EYGLE/EQSP04.DBF
D:/ORACLE/ORADATA/EYGLE/AM01.DBF
D:/ORACLE/ORADATA/EYGLE/SYSTEM02.DBF
D:/ORACLE/ORADATA/EYGLE/FNC01.DBF
D:/ORACLE/ORADATA/EYGLE/HH_AM01.ORA
已選擇24行。
SQL>
創建存儲數據的表空間,假如采樣間隔較短,周期較長,打算長期使用,那么你可能需要一個大一點的表空間,假如每個半個小時采樣一次,連續采樣一周,數據量是很大的。本例創建一個
500M的測試表空間。
SQL> create tablespace perfstat
2 datafile 'd:/oracle/oradata/eygle/perfstat.dbf'
3 size 500M;
表空間已創建。
SQL>
檢查是否存在安裝所需要的腳本文件
SQL> host dir sp*
驅動器 D 中的卷沒有標簽。
卷的序列號是 5070-5982
D:/oracle/ora81/RDBMS/ADMIN 的目錄
2000-02-18 14:34 1,841 spauto.sql
2000-06-15 15:21 64,492 spcpkg.sql
2000-02-18 14:34 916 spcreate.sql
2000-06-15 15:21 31,985 spctab.sql
2000-06-15 15:21 6,623 spcusr.sql
2000-06-15 15:53 47,820 spdoc.txt
2000-06-15 15:22 794 spdrop.sql
2000-06-15 15:21 3,732 spdtab.sql
2000-06-15 15:21 1,334 spdusr.sql
2000-06-15 15:22 7,002 sppurge.sql
2000-07-12 15:07 72,992 spreport.sql
2000-06-15 15:22 2,278 sptrunc.sql
2000-02-18 14:34 612 spueXP.par
2000-06-15 15:22 31,122 spup816.sql
14 個文件 273,543 字節
0 個目錄 3,974,799,360 可用字節
接下來我們就可以開始安裝Statspack了。這期間會提示你輸入缺省表空間和臨時表空間的位置,輸入我們為perfstat用戶創建的表空間和你的臨時表空間。
SQL> @spcreate
.
.
.
.
Specify PERFSTAT user's default tablespace
輸入 default_tablespace 的值: perfstat
Using perfstat for the default tablespace
用戶已更改。
用戶已更改。
Specify PERFSTAT user's temporary tablespace
輸入 temporary_tablespace 的值: temp
假如安裝成功,你可以看到如下的輸出信息:
SQL> host type spcpkg.lis
Creating Package STATSPACK...
程序包已創建。
沒有錯誤。
Creating Package Body STATSPACK...
程序包主體已創建。
沒有錯誤。
NOTE:
SPCPKG complete. Please check spcpkg.lis for any errors.
你可以查看.lis文件查看安裝時的錯誤信息。
SQL> host dir *.lis
驅動器 D 中的卷沒有標簽。
卷的序列號是 5070-5982
D:/oracle/ora81/RDBMS/ADMIN 的目錄
2002-12-03 17:25 204 spcpkg.lis
2002-12-03 17:25 2,276 spctab.lis
2002-12-03 17:25 3,965 spcusr.lis
2002-12-03 17:23 1,187 spdtab.lis
2002-12-03 17:24 351 spdusr.lis
5 個文件 7,983 字節
0 個目錄 3,965,304,832 可用字節
SQL> host find “ORA-“ *.lis
SQL> host find "err" *.lis
---------- SPAUTO.LIS
---------- SPCPKG.LIS
SPCPKG complete. Please check spcpkg.lis for any errors.
---------- SPCTAB.LI