㈠ oracle awr收集是否開啟
雙擊桌面plsql運行程序,啟動軟體。因為生成報告需要dba許可權,所以在登錄的時候角色選擇sysdba。在命令窗口中先創建快照。然後執行@直接回車,在彈出的窗口中找到資料庫安裝目錄找到相應要生成的awr報考腳本。然後在彈出的窗口中填寫導出報告的格式。然後接著在彈出的窗口中填寫需要導出報告的日期范圍,填寫1代表當天的。然後在接下來的窗口中輸入開始快照id與結束快照id。然後填寫導出報告的名稱,完成導出即可
㈡ oracle資料庫的awr報告怎麼做,需要安裝oracle嗎
AWR是需要在運行Oracle的環境上,獲取資料庫的相關信息。
通過運行 $ORACLE_HOME/rdbms/admin 目錄中的 awrrpt.sql 腳本,AWR 的功能可以立即通過它從採集的統計數據和量度中生成的報表得到最好的說明。這個腳本從外觀和感覺上類似於 Statspack,它顯示所有的現有 AWR 快照並請求兩個特定的快照作為時間間隔邊界。它產生兩種類型的輸出:文本格式(類似於 Statspack 報表的文本格式但來自於 AWR 信息庫)和默認的 HTML 格式(擁有到部分和子部分的所有超鏈接),從而提供了非常用戶友好的報表。現在運行該腳本以查看報表,從而對 AWR 的功能有一個了解。
手動生成AWR快照號:
exec dbms_workload_repository.create_snapshot
用CRT軟體,使用Oracle登錄到伺服器上:
sqlplus /nolog
conn system/system
@$ORACLE_HOME/rdbms/admin/awrrpt.sql
選擇生成HTML格式。
然後會看到時間段和數字,選擇兩個數字及生產兩個數字之間的AWR報告
㈢ 如何生成 AWR 報告
AWR報告的原理是基於oracle資料庫的定時鏡像功能。默認情況下,Oracle資料庫後台進程會以一定間隔(一小時)收集系統當前狀態鏡像,並且保存在資料庫中。生成AWR報告時,只需要指定進行分析的時間段(開始鏡像編號和結束鏡像編號),就可以生成該時間段的性能分析情況。AWR鏡像保存在資料庫中的時間為一個月左右。
㈣ oracle資料庫生成某一時段的awr報告,以下哪個語句是正確的
方法如下:
1、運行,cmd。然後進入到 oracle的安裝目錄,這里以我的電腦為例: E:\app\Administrator\proct\11.2.0\dbhome_1\
2、再進入到下面的目錄 RDBMS\ADMIN。確保E:\app\Administrator\proct\11.2.0\dbhome_1\RDBMS\ADMIN 下面有 awrrpt.sql這個文件
3、輸入 sqlplus ,然後以管理員身份登錄。
4、輸入命名:@awrrpt
5、開始按提示操作,首先是選擇要生成的awr報告的類型,可以選擇text或html類型。這里我們以 html類型為例。輸入 html,回畫
6、選擇要生成的報告的日期是在多少天以前記錄,輸入1,則表示要生成今天0點開始到現在之內的某個時間段的報告,輸入2,則表示滿意生成昨天0點開始到現在的某個時間段的報告。以此類推。預設記錄最近7天,這里輸入法為示例。
7、輸入天數後,界面會輸出一個時間段的表格,每個時間點都對應一個snapId,間隔時間為oracle默認是1個小時,接下來,輸入要生成報告的時間開始點應的snap id,這里我輸入3318, 然後再輸入結束點對應的snap id,這里輸入 3320.
8、接著要求輸入生成報告的名字,系統會自動生成一個輸入的名字並會提示信息中顯示出來。如果使用輸入名稱。則不用輸入任何內容。直接回畫即可。到此。系統就會自動生成一張awr的報告。
㈤ 如何看懂Oracle資料庫AWR報告
如何看懂Oracle資料庫AWR報告
先看資料庫環境,版本,壓力大小等
然後分析命中率,首先你要懂命中率什麼意思然後定一個閥值,達到這個閥值有可能會有哪些問題,然後向下找出證據
最後也是最重要的是 等待事件,弄清楚每個等待事件的意義,然後向下找證據
事件下面基本可以看作證據,來證明你對命中率和等待事件的分析。
所以第一:你要會分析出問題。
第二:要知道AWR都收集哪些數據,對你的分析來佐證!
㈥ Oracle里的兩個工具RDA和AWR,這兩個東東我有些分不清。請你解釋一下,謝謝你。
RDA是Remote Diagnostic Agent 的簡稱,是oracle用來收集、分析資料庫的工具,運行該工具不會改變系統的任何參數,RDA收集的相關數據非常全面,可以簡化我們日常監控、分析資料庫的工作,Oracle Support也建議我們在反饋相關問題時,提供RDA收集的數據,這樣可以為快速解決問題提供一個有力的保證。
AWR是Oracle Database 10g 提供的一個新工具:(AWR:Automatic Workload Repository)。Oracle 建議用戶用這個取代 Statspack。AWR 實質上是一個 Oracle 的內置工具,它採集與性能相關的統計數據,並從那些統計數據中導出性能量度,以跟蹤潛在的問題。
與 Statspack 不同,快照由一個稱為 MMON 的新的後台進程及其從進程自動地每小時採集一次。為了節省空間,採集的數據在 7 天後自動清除。快照頻率和保留時間都可以由用戶修改。它產生兩種類型的輸出:文本格式(類似於 Statspack 報表的文本格式但來自於 AWR 信息庫)和默認的 HTML 格式(擁有到部分和子部分的所有超鏈接),從而提供了非常用戶友好的報表。
㈦ 如何生成遠程資料庫的awr報告
* 定義:awr報告是oracle 10g下提供的一種性能收集和分析工具,它能提供一個時間段內整個系統資源使用情況的報告,通過這個報告,我們就可以了解一個系統的整個運行情況,這就像一個人全面的體檢報告。
如何分析:
* 在看awr報告的時候,我們並不需要知道所有性能指標的含義,就可以判斷出問題的所在,這些性能指標其實代表了oracle內部實現,對oracle理解的越深,在看awr報告的時候,對資料庫性能的判斷也會越准確
* 在看性能指標的時候,心裡先要明白,資料庫出現性能問題,一般都在三個地方,io,內存,cpu,這三個又是息息相關的(ps:我們先假設這個三個地方都沒有物理上的故障),當io負載增大時,肯定需要更多的內存來存放,同時也需要cpu花費更多的時間來過濾這些數據,相反,cpu時間花費多的話,有可能是解析sql語句,也可能是過濾太多的數據,到不一定是和io或內存有關系了
* 當我們把一條sql送到資料庫去執行的時候,我們要知道,什麼時候用到cpu,什麼時候用到內存,什麼時候用到io
1. cpu:解析sql語句,嘗試多個執行計劃,最後生成一個資料庫認為是比較好的執行計劃,不一定是最優的,因為關聯表太多的時候,資料庫並不會窮舉所有的執行計劃,這會消耗太多的時間,oracle怎麼就知道這條數據時你要,另一個就不是你要的呢,這是需要cpu來過濾的
2. 內存:sql語句和執行計劃都需要在內存保留一段時間,還有取到的數據,根據lru演算法也會盡量在內存中保留,在執行sql語句過程中,各種表之間的連接,排序等操作也要佔用內存
3. io:如果需要的數據在內存中沒有,則需要到磁碟中去取,就會用到物理io了,還有表之間的連接數據太多,以及排序等操作內存放不下的時候,也需要用到臨時表空間,也就用到物理io了
這里有一點說明的是,雖然oracle佔用了8G的內存,但pga一般只佔8G的20%,對於專用伺服器模式,每次執行sql語句,表數據的運算等操作,都在pga中進行的,也就是說只能用1.6G左右的內存,如果多個用戶都執行
多表關聯,而且表數據又多,再加上關聯不當的話,內存就成為瓶頸了,所有優化sql很重要的一點就是,減少邏輯讀和物理讀
如何生成awr報告:
* 1:登陸對應的資料庫伺服器
2:找到oracle磁碟空間(d:oracle\proct\10.2.0\db_1\RDBMS\Admin)
3:執行cmd-cd d:回車
4: cd d:oracle\proct\10.2.0\db_1\RDBMS\Admin 回車
5:sqlplus 用戶名/密碼@服務連接名(例:sqlplus carmot_esz_1/carmot@igrp)
6:執行@awrrpt.sql 回車
第一步輸入類型: html
第二步輸入天數: 天數自定義(如1,代表當天,如果2,代表今天和昨天。。。)
第三步輸入開始值與結束值:(你可以看到上面列出的數據,snap值)
這個值輸入開始,與結束
第四步輸入導出表的名稱:名稱自定義 回車
第五步,由程序自動導完。
第六:到d:oracle\proct\10.2.0\db_1\RDBMS\Admin 目錄下。找到剛才生成的文件。 XXXX.LST文件
具體分析過程:
* 在分析awr報告之前,首先要確定我們的系統是屬於oltp,還是olap(資料庫在安裝的時候,選擇的時候,會有一個選項,是選擇oltp,還是olap)
對於不同的系統,性能指標的側重點是不一樣的,比如,library hit和buffer hit,在olap系統中幾乎可以忽略這倆個性能指標,而在oltp系統中,這倆個指標就非常關鍵了
* 首先要看倆個時間
Elapsed: 240.00 (mins) 表明采樣時間是240分鍾,任何數據都要通過這個時間來衡量,離開了這個采樣時間,任何數據都毫無疑義
DB Time: 92,537.95 (mins) 表明用戶操作花費的時候,包括cpu時間喝等待時間,也許有人會覺得奇怪,為什麼在采樣的240分鍾過程中,用戶操作時間竟然有92537分鍾呢,遠遠超過了
采樣時間,原因是awr報告是一個數據的集合,比如在一分鍾之內,一個用戶等待了30秒,那麼10個用戶就等待了300秒,對於cpu的話,一個cpu處理了30秒,16個cpu就是4800秒,這些時間都是以累積的方式記錄在awr報告中的。
再看sessions,可以看出連接數非常多
* 為了對資料庫有個整體的認識,先看下面的性能指標
1. Buffer Nowait 說明在從內存取數據的時候,沒有經歷等待的比例,期望值是100%
2. Buffer Hit 說明從內存取數據的時候,buffer的命中率的比例,期望值是100%,但100%並不代表性能就好,因為這只是一個比例而已,舉個例子,執行一條 sql語句,# 執行計劃是需要取10000個數據塊,結果內存中還真有這10000個數據塊,那麼比例是100%,表面上看是性能最高的,還有一個執行計劃是需要500 個數據塊,內存中有250個,另外250個需要在物理磁碟中取,
這種情況下,buffer hit是50%,結果呢,第二個執行計劃性能才是最高的,所以說100%並不代表性能最好
3. Library Hit 說明sql在Shared Pool的命中率,期望值是100%
4. Execute to Parse 說明解析sql和執行sql之間的比例,越高越好,說明一次解析,到處執行,如果parse多,execute少的話,還會出現負數,因為計算公式是100*(1-parse/execute)
5. Parse CPU to Parse Elapsd 說明在解析sql語句過程中,cpu占整個的解析時間比例,,期望值是100%,說明沒有產生等待,需要說明的是,即使有硬解析,只要cpu沒有出現性能問題,也是可以容忍的,比較硬解析也有它的好處的
6. Redo NoWait 說明在產生日誌的時候,沒有產生等待,期望值是100%
7. Soft Parse 說明軟解析的比例,期望值是100%,有一點要說明的是,不要單方面的追求軟解析的高比例,而去綁定變數,要看性能的瓶頸在哪裡
8. Latch Hit 說明latch的命中率,期望值是100%,latch類似鎖,是一種內存鎖,但只會產生等待,不會產生阻塞,和lock還是有區別的,latch是在並發的情況下產生的
9. Non-Parse CPU 說明非解析cpu的比例,越高越好,用100減去這個比例,可以看出解析sql所花費的cpu,100-99.30=0.7,說明花費在解析sql上的cpu很少
* 結合Time Model Statistics
可以看出,在整個sql執行時間(sql execute elapsed time)時間為5552019秒中,解析時間(parse time elapsed)用了36秒,硬解析時間(hard parse elapsed time)用了34秒雖然硬解析時間佔了整個解析時間的絕大部分,但解析時間是花的很少的,所以可以判斷出,sql的解析沒有成為性能的瓶頸,進一步推測,sql在獲取數據的過程中遇到了瓶 頸
* 繼續看Top 5 Timed Events,從這里可以看出等待時間在前五位的是什麼事件,基本上就可以判斷出性能瓶頸在什麼地方
1. buffer busy waits 說明在獲取數據的過程中,頻繁的產生等待事件,很有可能產生了熱點塊,也就是說,很多會話都去讀取同樣的數據塊,這一事件等待了5627394次,總共等待了5322924秒,平均等待時間為946毫秒,而且頻率也是最高的,有95.9%,等待類別是並發
這里有一個概念:oracle操作的最小單位是塊,當一個會話要修改這個塊中的一條記錄,會讀取整個塊,如果另一個會話要修改的數據也正好在這個塊中,雖然這倆個
2. 會話修改的記錄不一樣,也會產生等待direct path write temp和direct path read temp 說明用到了臨時表空間,那我們再看一下Tablespace IO Stats
各項指標都是非常高的,再根據上面的In-memory Sort是100%,沒有產生磁碟排序,也就在排序的時候沒有用到臨時表空間,進一步推測,多個session,每個session執行的sql語句中多表關聯,產生了很多中間數據,pga內存中放不下,
用到了臨時表空間,也有可能是用到了lob欄位,在用lob欄位的時候,也會用到臨時表
* 繼續看SQL Statistics
根據buffer busy waits等待次數,時間,頻率都是最高的,我們重點看邏輯讀,物理讀,和執行時間最長的sql,把排在前幾位的拿出來優化
優化的原則為降低物理讀,邏輯讀,sql語句中的子操作執行次數盡量少,在看oracle估計出來的執行計劃是看不出子操作的執行次數的,要看運行時的執行計劃
* 有興趣的話還可以看一下Segment Statistics
列出了用到的索引和表的使用情況,從這里也能看出索引和表的使用頻率
* 也可以看一下Load Profile
裡面列出了每秒,每個事務所產生的日誌,邏輯讀和物理讀等指標
㈧ 如何生成 AWR 報告
1.生成單實例 AWR 報告: @$ORACLE_HOME/rdbms/admin/awrrpt.sql 2.生成 Oracle RAC AWR 報告: @$ORACLE_HOME/rdbms/admin/awrgrpt.sql 3.生成 RAC 環境中特定資料庫實例的 AWR 報告: @$ORACLE_HOME/rdbms/admin/awrrpti.sql 4.生成 Oracle RAC 環境中多個資料庫實例的 AWR 報告的方法: @$ORACLE_HOME/rdbms/admin/awrgrpti.sql 5.生成 SQL 語句的 AWR 報告: @$ORACLE_HOME/rdbms/admin/awrsqrpt.sql 6.生成特定資料庫實例上某個 SQL 語句的 AWR 報告: @$ORACLE_HOME/rdbms/admin/awrsqrpi.sql --生成 AWR 時段對比報告 7.生成單實例 AWR 時段對比報告 @$ORACLE_HOME/rdbms/admin/awrddrpt.sql 9.生成 Oracle RAC AWR 時段對比報告 @$ORACLE_HOME/rdbms/admin/awrgdrpt.sql 10.生成特定資料庫實例的 AWR 時段對比報告 11.生成 Oracle RAC 環境下特定(多個)資料庫實例的 AWR 時段對比報告
㈨ 如何禁用Oracle AWR自動采樣功能
在Oracle 10g中,AWR采樣預設部署於資料庫中,那麼如何禁用這個功能呢?
在Metalink Note: 436386.1中,Oracle提供了一個增強腳本,稱為: dbmsnoawr.plb 通過這個腳本可以啟用和禁用AWR采樣功能,從原則上,為未購買該部分功能授權的用戶提供了一個退出途徑。
在Oracle Database 11g中,可以通過參數CONTROL_MANAGEMENT_PACK_ACCESS 控制組件包的訪問。
該腳本的內容如下:
Rem Rem dbmsnoawr.sql Rem Rem Copyright (c) 2006, Oracle. All rights reserved. Rem Rem NAME Rem dbmsnoawr.sql - Declaration of the DBMS_AWR package Rem Rem DESCRIPTION Rem Utilities for disabling and getting status of AWR Rem Rem NOTES Rem Rem MODIFIED (MM/DD/YY) Rem gwood 04/13/07 - created Rem create or replace package dbms_awr as -- PACKAGE dbms_awr -- This package allows users to disable AWR functionality in a Oracle 10g+ database. -- The use of this package is not resticted by licencing of the Diagnostic Pack. -- Additionally this package contains two functions that can be used to determine -- if AWR is currently enabled. -- -- PROCEDURE dbms_awr.disable_awr -- PURPOSE: turns off collections into Automatic Workload Repository -- PARAMETERS: none procere disable_awr; -- PROCEDURE dbms_awr.enable_awr -- PURPOSE: turns on collections into Automatic Workload Repository. The capture interval -- is set to the default of 60 minutes. -- PARAMETERS: none procere enable_awr; -- FUNCTION dbms_awr.awr_enabled -- PURPOSE: Returns TRUE if Automatic Workload Repository is performing periodic capture. -- Returns FALSE if Automatic Workload Repository periodic capture is disabled. -- PARAMETERS: none function awr_enabled return boolean; -- FUNCTION dbms_awr.awr_status -- PURPOSE: Returns 'ENABLED' if Automatic Workload Repository is performing periodic capture. -- Returns 'DISABLED' if Automatic Workload Repository periodic capture is disabled. -- PARAMETERS: none function awr_status return varchar2; end dbms_awr; / create or replace package body dbms_awr wrapped a000000 b2 abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd b 27b 1de XeDco+ GGfYVnyl/+joOTKYe 4TyFpXVqzVWS+/ePGAQzUKwvS 3L8/hKgjdK9Fgw8bb7v1HTq22OJlAv+R/DYCSK57rPmAkyx/XLuXcPo3hcYs8fvUUAO33szW /0tk3BW0W/GVo3XfdSzUpGN5aKa1xF2Yh trcMV3KuK/FfIpy0bNDxSQ3LFuOsB8i5xzhj/ u+Z6US/LtRISXt2I8zFq6/aDSuOXTor9KQ1jYA== /
該腳本包含兩個過程和兩個函數,通過disable_awr / enable_awr 就可以禁用或者啟用AWR采樣功能:
SQL> @D:dbmsnoawr.plb
Package created.
Package body created.
SQL> desc dbms_awr
FUNCTION AWR_ENABLED RETURNS BOOLEAN
FUNCTION AWR_STATUS RETURNS VARCHAR2
PROCEDURE DISABLE_AWR
PROCEDURE ENABLE_AWR
SQL> exec dbms_awr.disable_awr
PL/SQL procere successfully completed.
SQL> select dbms_awr.awr_status from al;
AWR_STATUS
------------------------------------------------------- DISABLED
SQL> exec dbms_awr.enable_awr
PL/SQL procere successfully completed.
SQL> select dbms_awr.awr_status from al;
AWR_STATUS
------------------------------------------------------- ENABLED
這個腳本本質上非常簡單,就是通過將快照采樣價格設置為0和60來控制禁用和啟用的。
PROCEDURE DISABLE_AWR
IS
BEGIN DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(INTERVAL => 0);
END;
PROCEDURE ENABLE_AWR IS
BEGIN DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(INTERVAL => 60);
END;
記錄供參考。
㈩ 資料庫:Oracle 11g AWR 系列五:如何生成 AWR 報告
1.生成單實例 AWR 報告: @$ORACLE_HOME/rdbms/admin/awrrpt.sql 2.生成 Oracle RAC AWR 報告: @$ORACLE_HOME/rdbms/admin/awrgrpt.sql 3.生成 RAC 環境中特定資料庫實例的 AWR 報告: @$ORACLE_HOME/rdbms/admin/awrrpti.sql 4.生成 Oracle RAC 環境中多個資料庫實例的 AWR 報告的方法: @$ORACLE_HOME/rdbms/admin/awrgrpti.sql 5.生成 SQL 語句的 AWR 報告: @$ORACLE_HOME/rdbms/admin/awrsqrpt.sql 6.生成特定資料庫實例上某個 SQL 語句的 AWR 報告: @$ORACLE_HOME/rdbms/admin/awrsqrpi.sql --生成 AWR 時段對比報告 7.生成單實例 AWR 時段對比報告 @$ORACLE_HOME/rdbms/admin/awrddrpt.sql 9.生成 Oracle RAC AWR 時段對比報告 @$ORACLE_HOME/rdbms/admin/awrgdrpt.sql 10.生成特定資料庫實例的 AWR 時段對比報告 11.生成 Oracle RAC 環境下特定(多個)資料庫實例的 AWR 時段對比報告