標籤:utl statspack awr 健康狀態檢查 oracle
資料庫健康狀態檢查
使用utl指令、statspack、awr來檢查資料庫的健康狀態
前提:
> show parameter time_ timed_statistics;
NAME TYPE VALUE------------------------------------ ----------- ------------------------------timed_statistics boolean TRUE
1:utl
##在8i之前只有這個方式,當然在後續的版本中還是有這個功能的
$ cd /doiido/oracle/product/11.2.0.1/db_1/rdbms/admin
$ sqlplus / as sysdba
> @utlbstat.sql
> @utlestat.sql
##上面兩條指令分別代表了開始時間以及關閉時間,然後會在目前的目錄下產生一個report.txt檔案
2:statspack
##在8i,9i中使用的方法,當然在後續版本中也存在該功能,這個的好處是可以使用JOB去調度它
2.1首先建立一個資料表空間,也可以不建,但是必須至少有80M的空間
sql> CREATE TABLESPACE statspack DATAFILE ‘/doiido/oracle/oradata/statspack.dbf‘ SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE 500M EXTENT MANAGEMENT local UNIFORM SIZE 128K SEGMENT SPACE MANAGEMENT auto;
2.2進行statspack安裝
$ cd /doiido/oracle/product/11.2.0.1/db_1/rdbms/admin
$ sqlplus / as sysdba
> @spcreate.sql
##接下來會自動建立一個使用者,你需要輸入這個使用者的的密碼,同時還會讓你選擇預設資料表空間,預設暫存資料表空間
2.3手動使用statspack產生效能報告。抓取快照,必須2次或更多
sql> conn perfstat/oracle
sql> exec statspack.snap
sql> exec statspack.snap
2.4產生報告
sql> @spreport.sql
##這裡會提示你輸入報告的開始和結束的快照ID,注意必須是在同一個沒有中斷資料庫的周期內的連續快照,然後會讓你選擇報告的名字,也可以選擇預設,報告產生預設在目前的目錄下面
2.5其他功能
(1)如果安裝過程出錯
必須先用spdrop.sql刪除,spcreate.sql建立的相關資訊
sql> conn / as sysdba
sql> @spdrop.sql
sql> @spcreate.sql
(2)將statspack安裝成自動執行,每小時抓取一次快照
> @spauto.sql
##檢查任務中是否有這個任務,並且可以看到job的ID
sql> select * from dba_job;
##如果不想自動抓取快照,記下job的ID後執行
sql> conn perfstat/oracle
sql> exec dbms_remove(n)
3:ARW
##在10g之後的版本支援該功能,預設是開啟的
$ cd /doiido/oracle/product/11.2.0.1/db_1/rdbms/admin
> @awrrpt.sql
##然後讓你選是要什麼格式的(預設是html格式的),同樣也是要選擇開始和結束的快照ID,然後定義輸出檔案的名字即可,產生也是在目前的目錄下
Oracle 資料庫健康狀態檢查