日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Oracle Awr

發(fā)布時(shí)間:2024/8/26 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle Awr 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

About Oracle AWR

Oracle AWR is a powerful monitoring utility bundle with Oracle Database from 10g.

Oracle AWR Basic Example

http://space.itpub.net/35489/viewspace-609528

SQL> conn / AS SYSDBA SQL> @?/rdbms/admin/awrrpt.sql 輸入 report_type 的值: <enter默認(rèn)為html類型> 輸入 num_days 的值: 2 --- 現(xiàn)在到過(guò)去兩天時(shí)間內(nèi)的snap id (可以查看到). 輸入 begin_snap 的值: 2147 --- 輸入的開(kāi)始及結(jié)束的snap id 對(duì)應(yīng)您要查找的出現(xiàn)問(wèn)題的時(shí)間段。 輸入 end_snap 的值: 2182 輸入 report_name 的值: <enter采用默認(rèn)文件名> Report written to awrrpt_1_2177_2182.html SQL> exit

下載awrrpt_1_2177_2182.html并打開(kāi)查看。

Oracle AWR License

So even though your 10g/11g database automatically collects AWR data every sixty minutes and retains it for a week – you cannot legally use the Oracle supplied PL/SQL packages (i.e. DBMS_WORKLOAD_REPOSITORY), the OEM screens for AWR, ADMM and ASH, or even the AWR data dictionary views (i.e. DBA_HIST_*) if you’re not licensed. This has in fact outraged more than a few users – resulting in an “Open Letter to Oracle about AWR and Ash Licensing”.

Oracle AWR 說(shuō)明

認(rèn)識(shí)AWR

Oracle 10g 開(kāi)始提供了一個(gè)顯著改進(jìn)的工具:自動(dòng)工作負(fù)載信息庫(kù)AWR (Automatic Workload Repository). Oracle 建議用戶用這個(gè)取代 Statspack。

AWR 是一個(gè)Oracle10g的內(nèi)置工具,它采集與性能相關(guān)的統(tǒng)計(jì)數(shù)據(jù),并從那些統(tǒng)計(jì)數(shù)據(jù)中導(dǎo)出性能量度,以跟蹤潛在的問(wèn)題。與 Statspack 不同,快照由一個(gè)稱為 MMON 的新的后臺(tái)進(jìn)程及其從進(jìn)程自動(dòng)地每小時(shí)采集一次(在oracle10G中引進(jìn)了兩個(gè)新的進(jìn)程:mmon和mmnl,其中MMON承擔(dān)了大部分的工作)。為了節(jié)省空間,采集的數(shù)據(jù)在 7 天后自動(dòng)清除。快照頻率和保留時(shí)間都可以由用戶修改。它產(chǎn)生兩種類型的輸出:文本格式(類似于 Statspack報(bào)表的文本格式但來(lái)自于 AWR 信息庫(kù))和默認(rèn)的 HTML 格式(擁有到部分和子部分的所有超鏈接),從而提供了非常友好的用戶報(bào)表。

AWR 用幾個(gè)表來(lái)存儲(chǔ)采集的性能統(tǒng)計(jì)數(shù)據(jù),所有的表都存儲(chǔ)在 SYSAUX 表空間中的 SYS 模式下,并且以 WRM$_*(5個(gè)) 和 WRH$_*(94個(gè))的格式名。前一種類型存儲(chǔ)元數(shù)據(jù)信息(如檢查的數(shù)據(jù)庫(kù)和采集的快照),后一種類型保存實(shí)際采集的統(tǒng)計(jì)數(shù)據(jù)。H代表“歷史數(shù)據(jù) (historical)”而 M 代表“元數(shù)據(jù) (metadata)”。在這些表上構(gòu)建了幾種帶前綴 [[[DBA_HIST_ 的視圖,這些視圖可以用來(lái)編寫(xiě)您自己的性能診斷工具。視圖的名稱直接與表相關(guān);例如,視圖 DBA_HIST_SYSMETRIC_SUMMARY 是在WRH$_SYSMETRIC_SUMMARY 表上構(gòu)建的。要使用AWR必須設(shè)置STATISTICS_LEVEL參數(shù),共有三個(gè):BASIC, TYPICAL,ALL。如果設(shè)為BASIC將禁用許多特性,如ADDM (Automatic Database Diagnostic Monitor ADDM)自動(dòng)數(shù)據(jù)庫(kù)診斷監(jiān)視器。安裝Oracle 10g后,默認(rèn)值是TYPICAL。AWR的統(tǒng)計(jì)數(shù)據(jù)默認(rèn)保留7天,并且每小時(shí)獲取一次快照。

一、 ASH(v$active_session_history)和AWR

1. 10g之前用戶的連接將產(chǎn)生會(huì)話,當(dāng)前會(huì)話記錄保存在v$session中;處于等待狀態(tài)的會(huì)話會(huì)被復(fù)制一份放在v$session_wait中。當(dāng)該連接斷開(kāi)后,其原來(lái)的連接信息在v$session和v$session_wait中就會(huì)被刪除。這是10g之前的狀況。

2. v$session_wait_history與ASH若是一個(gè)普通的會(huì)話(我是指沒(méi)有大量地耗費(fèi)資源),則對(duì)于性能調(diào)整來(lái)說(shuō)無(wú)足輕重。但若該會(huì)話在活動(dòng)時(shí)大量占用了資源(比如:CPU,內(nèi)存,I/O等),該會(huì)話信息的丟失,將無(wú)法評(píng)測(cè)當(dāng)時(shí)的系統(tǒng)瓶頸究竟是什么。令DBA高興的是,oracle10g中保留下了v$session_wait中的這些信息。在10g中新出現(xiàn)了一個(gè)視圖:v$session_wait_history。這個(gè)視圖保存了每個(gè)活動(dòng)session在v$session_wait中最近10次的等待事件(ASH缺省每一秒收集一下v$session中活動(dòng)會(huì)話的情況,記錄會(huì)話等待的事件,不活動(dòng)的會(huì)話不會(huì)被采樣 ,間隔時(shí)間由 _ash_sampling_interval 參數(shù)確定)。但這對(duì)于一段時(shí)期內(nèi)的數(shù)據(jù)性能狀況的監(jiān)測(cè)是遠(yuǎn)遠(yuǎn)不夠的,為了解決這個(gè)問(wèn)題,在10g中還新添加了一個(gè)視圖:v$active_session_history。這就是ASH(active session history)。典型的情況下,為了診斷當(dāng)前數(shù)據(jù)庫(kù)的狀態(tài),需要最近的五到十分鐘的詳細(xì)信息。然而,由于記錄session的活動(dòng)信息是很費(fèi)時(shí)間和空間的,ASH采用的策略是:保存處于等待狀態(tài)的活動(dòng)session的信息,每秒從v$session_wait中采樣一次,并將采樣信息保存在內(nèi)存中(ASH的采樣數(shù)據(jù)是保存在內(nèi)存中)。

3. AWR注意,ASH的采樣數(shù)據(jù)是保存在內(nèi)存中。而分配給ASH的內(nèi)存空間是有限的,當(dāng)所分配空間占滿后,舊的記錄就會(huì)被覆蓋掉;而且數(shù)據(jù)庫(kù)重啟后,所有的這些ASH信息都會(huì)消失。這樣,對(duì)于長(zhǎng)期檢測(cè)oracle的性能是不可能的。在Oracle10g中,提供了永久保留ASH信息的方法,這就是AWR(automatic workload repository)。

由于全部保存ASH中的信息是非常耗費(fèi)時(shí)間和空間的,AWR采用的策略是:MMON進(jìn)程每小時(shí)對(duì)ASH (v$active_session_history)進(jìn)行采樣一次,并將信息保存到磁盤(pán)中,當(dāng)ASH BUFFER滿2/3的話MMNL進(jìn)程會(huì)寫(xiě),并保留7天,7天后舊的記錄才會(huì)被覆蓋。這些采樣信息被保存在表wrh$_active_session_history中。而這個(gè)采樣頻率(1小時(shí))和保留時(shí)間(7天)是可以根據(jù)實(shí)際情況進(jìn)行調(diào)整的,這就給DBA們提供了更加有效的系統(tǒng)監(jiān)測(cè)工具。 AWR永久地保存系統(tǒng)的性能診斷信息,由SYS用戶擁有。一段時(shí)間后,你可能想清除掉這些信息;有時(shí)候?yàn)榱诵阅茉\斷,你可能需要自己定義采樣頻率來(lái)獲取系統(tǒng)快照信息。Oracle 10g在包dbms_workload_repository中提供了很多過(guò)程,通過(guò)這些過(guò)程,你可以管理快照并設(shè)定基線(baselines:用于保存指定時(shí)間段的歷史數(shù)據(jù)用于將來(lái)分析及對(duì)比 )。

4. ASH保存了系統(tǒng)最新的處于等待的會(huì)話記錄,可以用來(lái)診斷數(shù)據(jù)庫(kù)的當(dāng)前狀態(tài);而AWR中的信息最長(zhǎng)可能有1小時(shí)的延遲,所以其采樣信息并不能用于診斷數(shù)據(jù)庫(kù)的當(dāng)前狀態(tài),但可以用來(lái)作為一段時(shí)期內(nèi)數(shù)據(jù)庫(kù)性能調(diào)整的參考。

備注: 視圖dba_hist_active_sess_history是wrh$_active_session_history和其他幾個(gè)視圖的聯(lián)合展現(xiàn),通常通過(guò)這個(gè)視圖進(jìn)行歷史數(shù)據(jù)的訪問(wèn)。

二、詳細(xì)介紹 AWR

1. ASH的采集信息保存在內(nèi)存中,在舊的信息被采樣到AWR中后,可被新采集的信息覆蓋,重啟oracle后該信息被清除。分配給ASH的內(nèi)存大小可以查詢到:

SQL> select pool, name, bytes/1024/1024 From v$sgastat where name like '%ASH %';POOL NAME BYTES/1024/1024 ------------- ------------- --------------- shared pool ASH buffers 6

2. 其實(shí)AWR記錄的信息不僅是ASH,還可以收集到數(shù)據(jù)庫(kù)運(yùn)行的各方面統(tǒng)計(jì)信息和等待信息,用以診斷分析。
AWR的采樣方式是,以固定的時(shí)間間隔為其所有重要的統(tǒng)計(jì)信息和負(fù)載信息執(zhí)行一次采樣,并將采樣信息保存在AWR中。可以這樣說(shuō):ASH中的信息被保存到了AWR中的視圖wrh$_active_session_history中。ASH是AWR的真子集。

3. mmon進(jìn)程與mmnl進(jìn)程快照由一個(gè)稱為 MMON 的新的后臺(tái)進(jìn)程(及其從進(jìn)程)以及MMNL后臺(tái)進(jìn)程自動(dòng)地每隔固定時(shí)間采樣一次。我們先來(lái)看一下這兩個(gè)新增加的后臺(tái)進(jìn)程的介紹:
MMON進(jìn)程負(fù)責(zé)執(zhí)行多種和管理相關(guān)(manageability-related)的后臺(tái)任務(wù),例如:
當(dāng)某個(gè)測(cè)量值(metrics)超過(guò)了預(yù)設(shè)的限定值(threshold value)后提交警告 創(chuàng)建新的 MMON 隸屬進(jìn)程(MMON slave process)來(lái)進(jìn)行快照(snapshot) 捕獲最近修改過(guò)的 SQL 對(duì)象的統(tǒng)計(jì)信息

MMNL進(jìn)程負(fù)責(zé)執(zhí)行輕量級(jí)的且頻率較高的和可管理性相關(guān)的后臺(tái)任務(wù),例如捕獲會(huì)話歷史信息,測(cè)量值計(jì)算等。AWR的采樣工作由MMON進(jìn)程每個(gè)1小時(shí)執(zhí)行一次,ASH信息同樣會(huì)被采樣寫(xiě)出到AWR負(fù)載庫(kù)中。雖然ASH buffer被設(shè)計(jì)為保留1小時(shí)的信息,但很多時(shí)候這個(gè)內(nèi)存是不夠的,當(dāng)ASH buffer寫(xiě)滿后,另外一個(gè)后臺(tái)進(jìn)程MMNL將會(huì)主動(dòng)將ASH信息寫(xiě)出。

4. SYSAUX表空間這些采樣數(shù)據(jù)都存儲(chǔ)在SYSAUX表空間中,并且以WRM$_* 和 WRH$_*的格式命名。前一種類型存儲(chǔ)元數(shù)據(jù)信息(如檢查的數(shù)據(jù)庫(kù)和采集的快照),后一種類型保存實(shí)際采集的統(tǒng)計(jì)數(shù)據(jù)。

SQL> select table_name from dba_tables where table_name like 'WRM$%';TABLE_NAME ----------------------- WRM$_WR_CONTROL WRM$_SNAP_ERROR WRM$_SNAPSHOT WRM$_DATABASE_INSTANCE WRM$_BASELINE

當(dāng)SYSAUX表空間滿后,AWR將自動(dòng)覆蓋掉舊的信息,并在警告日志中記錄一條相關(guān)信息:

ORA-1688: unable to extend table SYS.WRH$_ACTIVE_SESSION_HISTORY partition WRH$_ACTIVE_3533490838_1522 by 128 in tablespace SYSAUX

5. 采樣頻率和保留時(shí)間可以通過(guò)查詢視圖dba_hist_wr_control或(wrm$_wr_control)來(lái)查詢AWR的采樣頻率和保留時(shí)間。默認(rèn)為每1小時(shí)采樣一次,采樣信息保留時(shí)間為7天。

SQL> select * from dba_hist_wr_control;DBID SNAP_INTERVAL RETENTION TOPNSQL ---- ------------- ----------- ---------- 1148 +00000 00:1 +00007 00:0 DEFAULTSQL> select DBID, SNAP_INTERVAL, SNAPINT_NUM, RETENTION from wrm$_wr_control;DBID SNAP_INTERVAL SNAPINT_NUM RETENTION ---------- ------------------ ----------- -------------------- 1160732652 +00000 01:00:00.0 3600 +00007 00:00:00.0-- 設(shè)置每半小時(shí)一次,并且保留5天 。 SQL> exec dbms_workload_repository.modify_snapshot_settings(interval=>30, retention=>5*24*60);

6. 采樣數(shù)據(jù)量由于數(shù)據(jù)量巨大,把所有ASH數(shù)據(jù)寫(xiě)到磁盤(pán)上是不能接受的。一般是在寫(xiě)到磁盤(pán)的時(shí)候過(guò)濾這個(gè)數(shù)據(jù),寫(xiě)出的數(shù)據(jù)占采樣數(shù)據(jù)的10%,寫(xiě)出時(shí)通過(guò)direct-path insert完成,盡量減少日志生成,從而最小化數(shù)據(jù)庫(kù)性能的影響。

7. 初始化參數(shù)statistics_level, AWR的行為受到參數(shù)STATISTICS_LEVEL的影響。這個(gè)參數(shù)有三個(gè)值:

  • BASIC: awr統(tǒng)計(jì)的計(jì)算和衍生值關(guān)閉.只收集少量的數(shù)據(jù)庫(kù)統(tǒng)計(jì)信息.
  • TYPICAL: 默認(rèn)值.只有部分的統(tǒng)計(jì)收集.他們代表需要的典型監(jiān)控oracle數(shù)據(jù)庫(kù)的行為.
  • ALL : 所有可能的統(tǒng)計(jì)都被捕捉. 并且有操作系統(tǒng)的一些信息.這個(gè)級(jí)別的捕捉應(yīng)該在很少的情況下,比如你要更多的sql診斷信息的時(shí)候才使用.

Oracle AWR Views

The following workload repository views are available:

V$ACTIVE_SESSION_HISTORY - Displays the active session history (ASH) sampled every second.
V$METRIC - Displays metric information.
V$METRICNAME - Displays the metrics associated with each metric group.
V$METRIC_HISTORY - Displays historical metrics.
V$METRICGROUP - Displays all metrics groups.
DBA_HIST_ACTIVE_SESS_HISTORY - Displays the history contents of the active session history.
DBA_HIST_BASELINE - Displays baseline information.
DBA_HIST_DATABASE_INSTANCE - Displays database environment information.
DBA_HIST_SNAPSHOT - Displays snapshot information.
DBA_HIST_SQL_PLAN - Displays SQL execution plans.
DBA_HIST_WR_CONTROL - Displays AWR settings.

三、使用AWR

AWR由ORACLE自動(dòng)產(chǎn)生,不過(guò)也可以通過(guò)DBMS_WORKLOAD_REPOSITORY包來(lái)手工創(chuàng)建、刪除和修改。可以使用desc命令查看該包中的過(guò)程。下面只介紹幾個(gè)常用的:

1.手工創(chuàng)建一個(gè)快照

SQL> select count(*) from wrh$_active_session_history;COUNT(*) ----------317 SQL> begin2 dbms_workload_repository.create_snapshot();3 end;4 /PL/SQL 過(guò)程已成功完成。 SQL> select count(*) from wrh$_active_session_history;COUNT(*) ----------320

2.手工刪除指定范圍的快照

SQL> select * from wrh$_active_session_history where snap_id = 96;SNAP_ID DBID INSTANCE_NUMBER SAMPLE_ID SAMPLE_TIME ---------- ---------- --------------- ---------- ----------------------------96 1160732652 1 236930 06-10月-07 11.26.04.562 上午96 1160732652 1 236930 06-10月-07 11.26.04.562 上午96 1160732652 1 236930 06-10月-07 11.26.04.562 上午SQL> begin2 dbms_workload_repository.drop_snapshot_range(low_snap_id => 96, high_snap_id => 96, dbid => 1160732652);3 end;4 / PL/SQL 過(guò)程已成功完成。 SQL> select * from wrh$_active_session_history where snap_id = 96; 未選定行

3.修改采集時(shí)間和統(tǒng)計(jì)信息保留時(shí)間

PROCEDURE MODIFY_SNAPSHOT_SETTINGS 參數(shù)名稱 類型 輸入/輸出默認(rèn)值? ------------------------------ ----------------------- ------ -------- RETENTION NUMBER IN DEFAULT INTERVAL NUMBER IN DEFAULT TOPNSQL NUMBER IN DEFAULT DBID NUMBER IN DEFAULT

通過(guò)修改retention參數(shù)可以修改awr信息的保留期限。默認(rèn)的是七天,最小的值是一天。如果把retention設(shè)置為零,自動(dòng)清除就關(guān)閉了.如果awr發(fā)現(xiàn)sysaux空間不夠,它通過(guò)刪除那些最老部分的快照來(lái)重新使用這些空間.同時(shí),也會(huì)給dba發(fā)一條警告,告訴sysaux空間不夠了(在alert log中).通過(guò)修改interval參數(shù)可以修改awr信息的采樣頻率。最小的值是10分鐘,默認(rèn)的是60分鐘.典型的值是10,20,30,60,120等等。把interval設(shè)為0則關(guān)閉自動(dòng)捕捉快照.如將收集間隔時(shí)間改為30 分鐘一次。并且保留5天時(shí)間(注:單位都是為分鐘):

SQL> select *from dba_hist_wr_control;DBID SNAP_INTERVAL RETENTION TOPNSQL ---------- ------------------ -------------------------- ----------- 1160732652 +00000 01:00:00.0 +00007 00:00:00.0 DEFAULTSQL> exec dbms_workload_repository.modify_snapshot_settings(interval=>30, retention=>5*24*60); PL/SQL 過(guò)程已成功完成。SQL> SELECT *from dba_hist_wr_control;DBID SNAP_INTERVAL RETENTION TOPNSQL ---------- ------------------- ------------------------- ----------- 1160732652 +00000 00:30:00.0 +00005 00:00:00.0 DEFAULTSQL>

4.設(shè)置基線
基線(baseline)是一種機(jī)制,這樣你可以在重要時(shí)間的快照信息集做標(biāo)記。一個(gè)基線定義在一對(duì)快照之間,快照通過(guò)他們的快照序列號(hào)識(shí)別.每個(gè)基線有且只有一對(duì)快照。一次典型的性能調(diào)整實(shí)踐從采集量度的基準(zhǔn)線集合、作出改動(dòng)、然后采集另一個(gè)基準(zhǔn)線集合開(kāi)始。可以比較這兩個(gè)集合來(lái)檢查所作的改動(dòng)的效果。在 AWR 中,對(duì)現(xiàn)有的已采集的快照可以執(zhí)行相同類型的比較。
假定一個(gè)名稱為 apply_interest 的高度資源密集的進(jìn)程在下午 1:00 到 3:00 之間運(yùn)行,對(duì)應(yīng)快照 ID 95 到 98。我們可以為這些快照定義一個(gè)名稱為apply_interest_1 的基準(zhǔn)線:

SQL> select *From dba_hist_baseline;未選定行SQL> select * from wrm$_baseline;未選定行SQL> exec dbms_workload_repository.create_baseline(95, 98, 'apply_interest_1');PL/SQL 過(guò)程已成功完成。這一操作將快照從 9598 編號(hào),作為上面指定的基準(zhǔn)線的一部分。查看現(xiàn)有的基準(zhǔn)線: SQL> select *from dba_hist_baseline;DBID BASELINE_ID BASELINE_NAME START_SNAP_ID START_SNAP_TIME END_SNAP_ID END_SNAP_TIME ---------- ----------- ------------------------- ------------- ------------------------------------- ----------- ------------ 1160732652 1 apply_interest_1 95 06-10月-07 11.00.05.375 上午 98 06-10月-07 01.44.58.062 下午SQL> select *from wrm$_baseline;DBID BASELINE_ID BASELINE_NAME START_SNAP_ID END_SNAP_ID ---------- ----------- ---------------------------- ------------- ----------- 1160732652 1 apply_interest_1 95 98SQL>

在一些調(diào)整步驟之后,我們可以創(chuàng)建另一個(gè)基準(zhǔn)線 — 假設(shè)名稱為 apply_interest_2,然后只為那些與這兩條基準(zhǔn)線相關(guān)的快照比較量度。
SQL> exec dbms_workload_repository.create_baseline(92, 94, 'apply_interest_2');

PL/SQL 過(guò)程已成功完成。
像這樣把快照分隔在僅僅幾個(gè)集合中有助于研究調(diào)整對(duì)于性能量度的影響。您可以在分析之后使用 drop_baseline() 來(lái)刪除基準(zhǔn)線;快照將保留(也可級(jí)聯(lián)刪除)。 此外,當(dāng)清除例程開(kāi)始刪除舊的快照時(shí),與基準(zhǔn)線相關(guān)的快照不會(huì)被清除,從而允許進(jìn)行進(jìn)一步的分析。

5.刪除基線

如果要?jiǎng)h除一個(gè)基準(zhǔn)線:

SQL> exec dbms_workload_repository.drop_baseline(baseline_name=>'apply_interest_1', cascade=>false);PL/SQL 過(guò)程已成功完成。SQL> select *from wrh$_active_session_history where snap_id in (95,96,97,98);SNAP_ID DBID INSTANCE_NUMBER SAMPLE_ID SAMPLE_TIME ---------- ---------- --------------- ---------- -------------------------------95 1160732652 1 235360 06-10月-07 10.56.29.872 上午95 1160732652 1 235230 06-10月-07 10.54.19.857 上午95 1160732652 1 233130 06-10月-07 10.19.19.478 上午95 1160732652 1 232830 06-10月-07 10.14.18.859 上午95 1160732652 1 232250 06-10月-07 10.04.38.481 上午97 1160732652 1 238600 06-10月-07 12.33.08.420 下午97 1160732652 1 238600 06-10月-07 12.33.08.420 下午97 1160732652 1 238600 06-10月-07 12.33.08.420 下午97 1160732652 1 238600 06-10月-07 12.33.08.420 下午97 1160732652 1 238600 06-10月-07 12.33.08.420 下午97 1160732652 1 238600 06-10月-07 12.33.08.420 下午SNAP_ID DBID INSTANCE_NUMBER SAMPLE_ID SAMPLE_TIME ---------- ---------- --------------- ---------- -------------------------------97 1160732652 1 238420 06-10月-07 11.50.55.686 上午97 1160732652 1 238230 06-10月-07 11.47.45.687 上午98 1160732652 1 239140 06-10月-07 01.42.00.976 下午98 1160732652 1 239140 06-10月-07 01.42.00.976 下午98 1160732652 1 239140 06-10月-07 01.42.00.976 下午98 1160732652 1 239140 06-10月-07 01.42.00.976 下午98 1160732652 1 239140 06-10月-07 01.42.00.976 下午98 1160732652 1 239130 06-10月-07 01.27.04.161 下午98 1160732652 1 239130 06-10月-07 01.27.04.161 下午98 1160732652 1 239130 06-10月-07 01.27.04.161 下午已選擇21行。SQL> exec dbms_workload_repository.drop_baseline(baseline_name=>'apply_interest_2', cascade=>true);PL/SQL 過(guò)程已成功完成。SQL> select *from wrh$_active_session_history where snap_id in (92,93,94); 未選定行SQL>

Using Oracle AWR

oracle10g awr取得快照

SQL> SQLPLUS / AS SYSDBA SQL> exec dbms_workload_repository.create_snapshot SQL> exec:snap_id:=dbms_workload_repository.create_snapshot SQL> var snap_id number SQL> print snap_id SQL> @?/rdbms/admin/awrrpt.sql

查看當(dāng)前的AWR保存策略

select * from dba_hist_wr_control; DBID,SNAP_INTERVAL,RETENTION,TOPNSQL 860524039,+00 01:00:00.000000,+07 00:00:00.000000,DEFAULT
以上結(jié)果表示,每小時(shí)產(chǎn)生一個(gè)SNAPSHOT,保留7天

調(diào)整AWR配置

AWR配置都是通過(guò)dbms_workload_repository包進(jìn)行配置

1調(diào)整AWR產(chǎn)生snapshot的頻率和保留策略,如:如將收集間隔時(shí)間改為30 分鐘一次。并且保留5天時(shí)間(注:單位都是為分鐘):

exec dbms_workload_repository.modify_snapshot_settings(interval=>30, retention=>5*24*60);

2關(guān)閉AWR,把interval設(shè)為0則關(guān)閉自動(dòng)捕捉快照

3手工創(chuàng)建一個(gè)快照

exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();

4 查看快照

select * from sys.wrh$_active_session_history

5手工刪除指定范圍的快照

exec WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(low_snap_id => 22, high_snap_id => 32, dbid => 3310949047);

6創(chuàng)建baseline

exec dbms_workload_repository.create_baseline (56,59,'apply_interest_1')

7刪除baseline

exec DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE(baseline_name => ' apply_interest_1', cascade => FALSE);

3.生產(chǎn)AWR報(bào)告

$ORACLE_HOME/rdbms/admin/awrrpt.sql

停止AWR的方法

Many Ways to Disable AWR:

Download Meta-Link script dbms_awr.plb, compile this package, then execute the PL/SQL package dbms_awr.disable_awr() [see metalink note 436386.1].
Set your init.ora parameter STATISTICS_LEVEL = BASIC
Execute the Oracle provided PL/SQL package: dbms_workload_repository.modify_snapshot_settings(interval=>0)
Execute the Oracle provided PL/SQL package: dbms_scheduler.disable('GATHER_STATS_JOB')
You can use Toad for #3: Main Menu->Database->Monitor->ADDM/AWR Reports screen, choose the Snapshot Management tab, set the interval to all zeroes, and then press the green checkmark in upper left corner to commit the change.
You can use Toad for #4: Main Menu->Schema Browser, choose the Sched. Job tab and disable the GATHER_STATS_JOB job.
You can use OEM for #4: Main Menu->Workload->Automatic Workload Repository, select the “Edit” button and then select the last radio group item labeled: Turn off Snapshot Collection, finally press OK
You can use OEM for #5: Main Menu->Scheduler->Jobs, select the data grid row for GATHER_STATS_JOB, choose the disable drop-down action, then finally press OK
Create your own database creation scripts (i.e. do not use DBCA) and make sure not to run the CATAWRTB.sql script [Note – Oracle upgrade process may undo this]
Run the CATNOAWR.sql script to drop the AWR Repository tables [Note – Oracle upgrade process may undo this]

ORACLE 10g/11g重建AWR

Reference:
http://www.2cto.com/database/201203/123990.html

如果在日常工作中遇見(jiàn)了AWR數(shù)據(jù)量太大,可以通過(guò)如下方式做以清除:

SQL> select distinct dbid,db_name,instance_name from wrm$_database_instance; DBID DB_NAME INSTANCE_NAME ---------- --------- ---------------- 2691876695 MYDB mydb -- 運(yùn)行如下腳本 SQL> @?\rdbms\admin\catnoawr.sql-- 不重啟的話,清空共享池 alter system flush shared_pool;-- 運(yùn)行重建AWR腳本: SQL> @?\rdbms\admin\catawrtb.sql-- recompile SQL> @?\rdbms\admin\utlrp.sql

ORACLE 11g需要需要運(yùn)行如下腳本:

SQL> @?\rdbms\admin\execsvrm.sql

測(cè)試

SQL> exec dbms_workload_repository.create_snapshot;

如果不對(duì)存儲(chǔ)過(guò)程進(jìn)行重新編譯,執(zhí)行快照過(guò)程會(huì)提示如下問(wèn)題:

SQL> exec dbms_workload_repository.create_snapshot; BEGIN dbms_workload_repository.create_snapshot; END;* 第 1 行出現(xiàn)錯(cuò)誤: ORA-13516: AWR 操作失敗: AWR Schema not initialized ORA-06512: 在 "SYS.DBMS_WORKLOAD_REPOSITORY", line 99 ORA-06512: 在 "SYS.DBMS_WORKLOAD_REPOSITORY", line 122 ORA-06512: 在 line 1 在重新編譯了存儲(chǔ)過(guò)程后,存儲(chǔ)過(guò)程運(yùn)行正常隔5分鐘后,再次運(yùn)行: SQL> exec dbms_workload_repository.create_snapshot;PL/SQL 過(guò)程已成功完成。 SQL> @?/rdbms/admin/awrrpt.sql

注意在RAC環(huán)境下的話,需要取消集群參數(shù)后,待執(zhí)行完成后再次修改過(guò)來(lái):

alter system set cluster_database = false scope = spfile;

當(dāng)然在重建后我們需要進(jìn)一步檢查下相關(guān)對(duì)象是否存在異常,對(duì)于存在異常的對(duì)象需要重新編譯:

spool objects.lst set pagesize500 set linesize 100 select substr(comp_name,1,40) comp_name, status, substr(version,1,10) version from dba_registry order by comp_name; select substr(object_name,1,40) object_name,substr(owner,1,15) owner,object_type from dba_objects where status='INVALID' order by owner,object_type; select owner,object_type,count(*) from dba_objects where status='INVALID' group by owner,object_type order by owner,object_type ; spool off alter package <schema name>.<package_name> compile; alter package <schema name>.<package_name> compile body; alter view <schema name>.<view_name> compile; alter trigger <schema).<trigger_name> compile;

總結(jié)

以上是生活随笔為你收集整理的Oracle Awr的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。