Oracle AWR (Automatic Workload Repository)時間是一個用于收集和管理 Oracle 數據庫的性能數據的重要組成部分。AWR時間既有周期性的時間間隔(默認情況下為一小時),也可以在需要時手動觸發。 AWRRPT.sql 腳本則用于生成詳細的 AWR 報告。下面我將詳細說明如何在 Oracle 數據庫中使用 AWR 時間。
記錄 AWR 數據非常簡單。它只需使用兩個命令:
$sqlplus "/as sysdba" SQL> EXECUTE DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
這兩條命令的最佳時間是在業務流量高峰期啟動定時作業,像這樣:
BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'MY_AWR_JOB', job_type => 'PLSQL_BLOCK', job_action => 'BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT(); END;', repeat_interval => 'FREQ=HOURLY; BYMINUTE=0; BYSECOND=0;', start_date => SYSTIMESTAMP, enabled => TRUE); END; /
這個作業將每小時在準確的時間創建一個 AWR Snapshot。你可以定義不同的計劃方案,更適合你的工作負載。
有關顯示 AWR 數據的最佳方法之一是在 Enterprise Manager(EM)中執行一個 AWR 報告。要從 EM 中運行報告,請轉到每個實例和 Database Control 主頁的“性能”選項卡,然后單擊側邊欄菜單中的“AWR”選項。在“AWR”選項卡上,可以選擇用于生成報告的快照范圍以及生成報告的類型,該報告類型可能是多種類型之一,如“CPU 使用情況報告”或“掛起系統基準報告”。然后,EM 將生成請求的 AWR 報告。
要在 SQLPLUS 中使用 AWR 報告,請按照以下步驟操作:
- 首先,執行以下命令顯示系統的主機名:
- 輸入以下命令,以獲取實例的 SID(可能需要輸入系統管理員 Orapass):
- 您還可以簡化上述語句的輸出,輸出元素 SID 和 tns_entry 還需要使用。 這耗時約 2 秒鐘,這需要在多處理器服務器上調整:
- 輸入以下命令(如有必要,請替換實例的 SID):
- 當 AWRRPT 返回語句時,您將需要輸入以下參數: Begin Snapshot ID and End Snapshot ID
- AWR 報告將生成一個文本文件或 HTML 文件(依據數據量而定),在相應的文件名 (reported_ dbname_instnum_begtime_endtime.html)下顯示 AWR 報告完整信息。
$hostname
ps -ef | grep [o]ra_pmon | awk '{print $NF}' | sed 's_^.*_sqlplus /nolog -S "&(tns_entry)"_' | uniq -c
ps -ef | grep [o]ra_pmon | sed -e 's/ora_pmon_/ /g' -e 's/ //g' -e 's/^/export ORACLE_SID=/' -e 's/$/;sqlplus -S $@ <<!/' -e 's/$/\nselect name,value from v\$system_parameter where name in ( '\''processes'\'', '\''sessions'\'', '\''transactions'\'', '\''db_block_buffers'\'', '\''shared_pool_size'\'', '\''large_pool_size'\'');\nselect * from v\$sga;\nselect * from v\$pgastat;\n!/' | uniq -c
$sqlplus "/ as sysdba" SQL> @?/rdbms/admin/awrrpt.sql
Specify the Report type: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ Please choose one ~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -> 1 - HTML (url) 2 - HTML (file) 3 - Text 4 - CSV 5 - SQL Enter your choice: [1] 2 Enter Report File Name ~~~~~~~~~~~~~~~~~~~~~~~ The report will be written to: /u01/app/oracle/product/11.2.0/db_1/rdbms/admin/test_awr.html Enter Report Name ~~~~~~~~~~~~~~~~~~~~~~~ The default report name is: test_awr.html. To use this name, press to continue, otherwise enter an alternative. Enter Begin Snapshot Id: Enter End Snapshot Id:
恭喜您!您可以開始使用 AWR 函數了。通過跟蹤基準性能指標平均值和當前性能指標,您可以更輕松地查找問題,而無需進行大量的人為搜索。而且,由于 AWR 自己記錄數據庫的性能情況,因此 AWR 通常會以更低的開銷來更精確地提供有關數據庫性能的有用信息。