當前位置:首頁 » 數據倉庫 » 資料庫awr報告
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫awr報告

發布時間: 2022-06-24 05:29:56

⑴ oracle資料庫awr報告何時更新

你還是系統的看一下關於AWR報告的資料吧,系統默認是一小時自己創建一次快照,但是根據快照來取某個時間段的報告,則需要DBA介入。通過你提問問題的方式,建議你系統查找awr的資料,不然即使給你提供了包,你也不會用。

⑵ AWR報告W/A MB processed較大是什麼問題

AWR(Automatic Workload Repository)報告是我們進行日常資料庫性能評定、問題sql發現的重要手段。熟練掌握AWR報告,是做好開發、運維DBA工作的重要基本功。

AWR報告的原理是基於Oracle資料庫的定時鏡像功能。默認情況下,Oracle資料庫後台進程會以一定間隔(一小時)收集系統當前狀態鏡像,並且保存在資料庫中。生成AWR報告時,只需要指定進行分析的時間段(開始鏡像編號和結束鏡像編號),就可以生成該時間段的性能分析情況。AWR鏡像保存在資料庫中的時間為一個月左右。

目前Oracle10g之後,AWR報告取代了原先的Statspack報告成為一個主流性能分析報告。通常可以從OEM(Oracle Enterprise Manager Console)平台上生成查看AWR報告。在OEM中,使用圖形化方法更加容易。本篇中介紹使用手工腳本方式生成AWR的方法,脫離OEM的限制。

1、 運行腳本

首先,准備一個目錄作為AWR生成報告的路徑。

[oracle@bspdev /]$ ls -l | grep test
drwxr-xr-x. 2 oracle oinstall 4096 Jun 21 13:01 test

[oracle@bspdev /]$ cd test

啟動sqlplus等開發工具,調用生成腳本。程序腳本一般保存在$ORACLE_HOME下的rdbms/admin中,名稱為awrrpt.sql。

[oracle@bspdev test]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Proction on Tue Jun 21 13:04:44 2011

Copyright (c) 1982, 2009, Oracle. All rights reserved.

SQL> conn / as sysdba
Connected.

--調用腳本,生成文件
SQL> @?/rdbms/admin/awrrpt.sql

之後進入報告參數輸入模塊。

2、輸入報告參數

之後,要持續輸入一系列的報告參數。

ü 輸入生成報告類型,目前AWR提供txt和html兩種格式。需要確認生成格式,默認是html格式。

Current Instance
~~~~~~~~~~~~~~~~

DB Id DB Name Inst Num Instance
----------- ------------ -------- ------------
4143510747 ORA11G 1 ora11g

Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
Would you like an HTML report, or a plain text report?
Enter 'html' for an HTML report, or 'text' for plain text
Defaults to 'html'

ü 報告涉及天數范圍

啟動報告後,會顯示生成實例的名稱等基本信息。

默認情況下,AWR會將鏡像信息保留一個月。手工生成的時候,需要確認生成AWR報告的時間范圍。一般情況下,特別是生產環境下,我們通常設置1-7天也就夠用了。

Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

DB Id Inst Num DB Name Instance Host
------------ -------- ------------ ------------ ------------
* 4143510747 1 ORA11G ora11g bspdev.local
domain

Using 4143510747 for database Id
Using 1 for instance number

Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed. Pressing <return> without
specifying a number lists all completed snapshots.

Enter value for num_days: 3

ü 輸入開始和結束的snapshot編號

輸入天數信息後,AWR生成代碼會將天數范圍內的snapshot鏡像點列出,供輸入選擇。

Listing the last 3 days of Completed Snapshots

Snap
Instance DB Name Snap Id Snap Started Level
------------ ------------ --------- ------------------ -----
ora11g ORA11G 1789 20 Jun 2011 13:01 1
1790 20 Jun 2011 14:00 1
1791 20 Jun 2011 15:00 1
1792 20 Jun 2011 16:00 1
(篇幅原因,有省略……)
1811 21 Jun 2011 11:00 1
1812 21 Jun 2011 12:00 1
1813 21 Jun 2011 13:00 1

Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

之後,我們需要根據列出的時間范圍,輸入開始和結束的snap編號。

Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 1796
Begin Snapshot Id specified: 1796

Enter value for end_snap: 1813

ü 確定報告名稱

最後就是確定生成報告的名稱。一般採用默認的名稱就可以了。

Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is awrrpt_1_1796_1813.html. To use this name,
press <return> to continue, otherwise enter an alternative.

Enter value for report_name:

之後輸出內容很多,此處不加以累述。最後提示報告生成成功。

Report written to awrrpt_1_1796_1813.html

於是,指定目錄上可以看到相應的報告文件。

[oracle@bspdev test]$ ls -l
total 508
-rw-r--r--. 1 oracle oinstall 515262 Jun 21 13:10 awrrpt_1_1796_1813.html

3、說明兩個問題

首先,此處生成的html格式的報表。如果要求生成txt格式,就在生成過程中選擇text格式報表。

Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
Would you like an HTML report, or a plain text report?
Enter 'html' for an HTML report, or 'text' for plain text
Defaults to 'html'
Enter value for report_type: text

Type Specified: text

End of Report
Report written to awrrpt_1_1789_1800.txt

[oracle@bspdev test]$ ls -l
total 692
-rw-r--r--. 1 oracle oinstall 180601 Jun 21 13:27 awrrpt_1_1789_1800.txt
-rw-r--r--. 1 oracle oinstall 515262 Jun 21 13:10 awrrpt_1_1796_1813.html

第二個就是調用腳本的方式問題。調用時使用的sqlplus客戶端可以在Oracle伺服器本機上(遠程登錄),也可以在客戶端機器本機上。筆者建議是在客戶端本機上進行生成,這樣可以避免報告文件來回拷貝的工作。但是最好要保證客戶端版本與伺服器版本相匹配。

4、結論

手工生成AWR報告,可以避免受到OEM的限制約束,而且靈活度高。本篇記錄,權當備忘。

⑶ 如何生成awr報告

1.生成單實例 AWR 報告:@$ORACLE_HOME/rdbms/admin/awrrpt.sql2.生成 Oracle RAC AWR 報告:@$ORACLE_HOME/rdbms/admin/awrgrpt.sql3.生成 RAC 環境中特定資料庫實例的 AWR 報告:@$ORACLE_HOME/rdbms/admin/awrrpti.sql4.生成 Oracle RAC 環境中多個資料庫實例的 AWR 報告的方法:@$ORACLE_HOME/rdbms/admin/awrgrpti.sql5.生成 SQL 語句的 AWR 報告:@$ORACLE_HOME/rdbms/admin/awrsqrpt.sql6.生成特定資料庫實例上某個 SQL 語句的 AWR 報告:@$ORACLE_HOME/rdbms/admin/awrsqrpi.sql--生成 AWR 時段對比報告7.生成單實例 AWR 時段對比報告@$ORACLE_HOME/rdbms/admin/awrddrpt.sql8.生成 Oracle RAC AWR 時段對比報告@$ORACLE_HOME/rdbms/admin/awrgdrpt.sql9.生成特定資料庫實例的 AWR 時段對比報告@$ORACLE_HOME/rdbms/admin/awrddrpi.sql10.生成 Oracle RAC 環境下特定(多個)資料庫實例的 AWR 時段對比報告@$ORACLE_HOME/rdbms/admin/awrgdrpi.sql來源: 51cto 作者:Oracle小混子

⑷ 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報告

⑸ 如何看懂Oracle資料庫AWR報告

如何看懂Oracle資料庫AWR報告
先看資料庫環境,版本,壓力大小等
然後分析命中率,首先你要懂命中率什麼意思然後定一個閥值,達到這個閥值有可能會有哪些問題,然後向下找出證據

最後也是最重要的是 等待事件,弄清楚每個等待事件的意義,然後向下找證據

事件下面基本可以看作證據,來證明你對命中率和等待事件的分析。
所以第一:你要會分析出問題。
第二:要知道AWR都收集哪些數據,對你的分析來佐證!

⑹ 資料庫IO高,如何通過AWR報告進行定位

Redo size 單位bytes,redo size可以用來估量update/insert/delete的頻率,大的redo size往往對lgwr寫日誌,和arch歸檔造成I/O壓力,Per Transaction可以用來分辨是大量小事務,還是少量大事務如
上例每秒redo約420kb,每個事務4kb,符合OLTP特徵;
Logical Read單位次數*塊數,相當於 "人*次",如上例30434 * db_block_size=243M/S,邏輯讀耗CPU,主頻和CPU核數都很重要,邏輯讀高則DB CPU往往高。
Block changes 單位次數*塊數,描繪數據變化頻率,上例260* 8k = 2MB/s;
Physical Read 單位次數*塊數,描繪數據變化頻率Physical Read 單位次數*塊數,如上例 1827*8k = 14.5MB/s, 物理讀消耗IO讀,體現在IOPS和吞吐量等不同緯度上;但減少物理讀可能意味著消耗更多CPU。好的存儲 每秒物理讀能力達到幾GB;
Physical writes單位次數*塊數,主要是DBWR寫datafile,也有direct path write dbwr長期寫出慢會導致定期log file switch(checkpoint no complete) 檢查點無法完成的前台等待。

⑺ 生成oracle資料庫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 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 時段對比報告

⑼ 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的報告。

⑽ 如何生成遠程資料庫的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
裡面列出了每秒,每個事務所產生的日誌,邏輯讀和物理讀等指標