ZT-Statspack安裝配置使用說明一
2024-07-21 02:40:01
供稿:網友
在數據庫治理中,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.Htmlhttp://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你可能需要設置以下系統參數: 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 - ProductionWith the Partitioning optionJServer 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----------------- ----------eygleAM-SERVER8.1.7.0.0 22-11月-02 SQL> 檢查數據文件路徑及磁盤空間,以決定創建數據文件的位置: SQL> select file_name from dba_data_files; FILE_NAME--------------------------------------------------------------------------------D:/ORACLE/ORADATA/EYGLE/SYSTEM01.DBFD:/ORACLE/ORADATA/EYGLE/RBS01.DBFD:/ORACLE/ORADATA/EYGLE/USERS01.DBFD:/ORACLE/ORADATA/EYGLE/TEMP01.DBFD:/ORACLE/ORADATA/EYGLE/TOOLS01.DBFD:/ORACLE/ORADATA/EYGLE/INDX01.DBFD:/ORACLE/ORADATA/EYGLE/DR01.DBFD:/ORACLE/ORADATA/EYGLE/GGQIANG01.DBFD:/ORACLE/ORADATA/EYGLE/EQSP01.DBFD:/ORACLE/ORA81/DATABASE/MP5_DATA.DBFD:/ORACLE/ORA81/DATABASE/MP5_INDX.DBFD:/ORACLE/ORA81/DATABASE/MP5_TEMP.DBFD:/ORACLE/ORA81/DATABASE/MP5_IDNX.DBFD:/ORACLE/ORADATA/EYGLE/HRM01.DBFD:/ORACLE/ORADATA/EYGLE/TIB.DBFD:/ORACLE/ORADATA/EYGLE/EQSP02.DBFD:/ORACLE/ORADATA/EYGLE/RMAN_TS.DBFD:/ORACLE/ORADATA/EYGLE/EQSP03.DBFD:/ORACLE/ORADATA/EYGLE/EAPP01.DBFD:/ORACLE/ORADATA/EYGLE/EQSP04.DBFD:/ORACLE/ORADATA/EYGLE/AM01.DBFD:/ORACLE/ORADATA/EYGLE/SYSTEM02.DBFD:/ORACLE/ORADATA/EYGLE/FNC01.DBFD:/ORACLE/ORADATA/EYGLE/HH_AM01.ORA 已選擇24行。 SQL> 創建存儲數據的表空間,假如采樣間隔較短,周期較長,打算長期使用,那么你可能需要一個大一點的表空間,假如每個半個小時采樣一次,連續采樣一周,數據量是很大的。本例創建一個500M的測試表空間。 SQL> create tablespace perfstat2 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.sql2000-06-15 15:21 64,492 spcpkg.sql2000-02-18 14:34 916 spcreate.sql2000-06-15 15:21 31,985 spctab.sql2000-06-15 15:21 6,623 spcusr.sql2000-06-15 15:53 47,820 spdoc.txt2000-06-15 15:22 794 spdrop.sql2000-06-15 15:21 3,732 spdtab.sql2000-06-15 15:21 1,334 spdusr.sql2000-06-15 15:22 7,002 sppurge.sql2000-07-12 15:07 72,992 spreport.sql2000-06-15 15:22 2,278 sptrunc.sql2000-02-18 14:34 612 spueXP.par2000-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.lisCreating 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.lis2002-12-03 17:25 2,276 spctab.lis2002-12-03 17:25 3,965 spcusr.lis2002-12-03 17:23 1,187 spdtab.lis2002-12-03 17:24 351 spdusr.lis5 個文件 7,983 字節0 個目錄 3,965,304,832 可用字節 SQL> host find “ORA-“ *.lisSQL> host find "err" *.lis ---------- SPAUTO.LIS ---------- SPCPKG.LISSPCPKG complete. Please check spcpkg.lis for any errors. ---------- SPCTAB.LISSPCTAB complete. Please check spctab.lis for any errors. ---------- SPCUSR.LISSPCUSR complete. Please check spcusr.lis for any errors. ---------- SPDTAB.LIS 在UNIX上,你可以通過以下命令查看相應的錯誤信息 $ ls *.lisspauto.lis spcpkg.lis spctab.lis spcusr.lis spdtab.lis spdusr.lis
$ grep ORA- *.lis$ grep err *.lisspcpkg.lis:SPCPKG complete. Please check spcpkg.lis for any errors.spctab.lis:SPCTAB complete. Please check spctab.lis for any errors.