手工生成AWR執行期對比報告記錄
AWR(Automatic Workload Repository)報告是Oracle 10g之後推出的重要效能診斷工具。AWR是作為Statspack報告的一種有力延伸。藉助AWR,我們可以方便的對Oracle資料庫的特定工作時間段進行效能分析評價,最終達到發現瓶頸調優的目標。
作為DBA,手工生成AWR報告是工作基本功之一。筆者在之前的《手工生成AWR報告記錄》(http://space.itpub.net/17203031/viewspace-700471)中,就已經詳細介紹過如何在sqlplus工具下生成AWR報告。
1、從AWR到AWR Compare Period Report
AWR是一個產品體系,根據定時收集的系統執行資料,我們其實可以做的更多。在現在主流的運維管理和調優過程中,基線baseline的概念是一直貫穿始終。系統執行負載Baseline、關鍵SQL執行計劃Baseline等等,反覆出現。總之,所謂的Baseline,簡單的說就是一套執行負載指標或者執行計劃指標。當你認為系統出現問題的時候,可以將Baseline作為標準進行對比,發現問題所在。進一步的,可以將Baseline作為應急手段,強制使用應對生產(SQL Profile、SPM)。
我們一般的調優過程中,也的確需要這樣的小工具。比如:業務高峰期和低谷期,資料庫各方面指標有什麼樣顯著的差異?進行調優之後,系統效能指標有何種方式變化?這種時候,生成兩份AWR,看著對比的確是一種方法。但是,Oracle已經為我們提供出AWR Compare Period Report來方便實現這樣的功能。
從原理上,AWR Compare Period Report不難理解。Oracle將各個時間snap的效能資料儲存在SYSAUX表空間的一系列資料字典表中,只要經過合理的組織,compare report不是一件困難的事情。
2、手工生成報告
本文是一篇記錄文章,依然採用手工sqlplus的方法生成報告。
ü 登入sqlplus,執行指令碼
使用sqlplus,登入入指定系統。
D:\>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 星期一 3月 5 09:02:42 2012
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL>(登入過程略……)
--呼叫指令碼
SQL> @?/rdbms/admin/awrddrpt.sql
注意:在sqlplus中,?表示$ORACLE_HOME路徑。指定的awrddrpt.sql指令碼,也是確實在客戶端本地的SQL執行指令碼。如果使用如PL/SQL Developer等開發工具,請指定直接路徑。
ü 輸入基本報告型別
首先同AWR報告一樣, Compare Period Report也存在TEXT和HTML兩種格式支援。在建立過程中,我們需要進行選定。
Current Instance
~~~~~~~~~~~~~~~~
DB Id DB Id DB Name Inst Num Inst Num Instance
----------- ----------- ------------ -------- -------- ------------
2351142467 2351142467 NBSTEST 1 1 NBSTEST
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'
輸入 report_type 的值:
Type Specified: html
ü 輸入第一對比時間段專案
既然要做到對比,首先需要指定一個對比時間範圍。這個過程同一般AWR報告相同,過程不予累述。
Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DB Id Inst Num DB Name Instance Host
------------ -------- ------------ ------------ ------------
* 2351142467 1 NBSTEST NBSTEST P550_05_LC
Database Id and Instance Number for the First Pair of Snapshots
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Using 2351142467 for Database Id for the first pair of snapshots
Using 1 for Instance Number for the first pair of snapshots
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
specifying a number lists all completed snapshots.
--輸入對比時間範圍
輸入 num_days 的值: 3
之後,Oracle會列出三天範圍的snap資訊。
Listing the last 3 days of Completed Snapshots
Snap
Instance DB Name Snap Id Snap Started Level
------------ ------------ --------- ------------------ -----
NBSTEST NBSTEST 10251 03 3月 2012 00:00 1
10252 03 3月 2012 01:00 1
(篇幅原因,省略部分……)
10305 05 3月 2012 06:00 1
Snap
Instance DB Name Snap Id Snap Started Level
------------ ------------ --------- ------------------ -----
NBSTEST NBSTEST 10306 05 3月 2012 07:00 1
10307 05 3月 2012 08:00 1
10308 05 3月 2012 09:00 1
Specify the First Pair of Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
輸入 begin_snap 的值:
--指定時間片
Specify the First Pair of Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
輸入 begin_snap 的值: 10296
First Begin Snapshot Id specified: 10296
輸入 end_snap 的值: 10298
設定了開始和結束時間snap,作為第一個時間。
ü 輸入第二對比時間段專案
第二報告時間snap資訊基本相同,不予累述。
Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DB Id Inst Num DB Name Instance Host
------------ -------- ------------ ------------ ------------
* 2351142467 1 NBSTEST NBSTEST P550_05_LC
Database Id and Instance Number for the Second Pair of Snapshots
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Using 2351142467 for Database Id for the second pair of snapshots
Using 1 for Instance Number for the second pair of snapshots
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
specifying a number lists all completed snapshots.
輸入 num_days2 的值:
輸入 num_days2 的值: 1
Listing the last day's Completed Snapshots
Snap
Instance DB Name Snap Id Snap Started Level
------------ ------------ --------- ------------------ -----
NBSTEST NBSTEST 10299 05 3月 2012 00:00 1
(篇幅原因,省略……)
10306 05 3月 2012 07:00 1
10307 05 3月 2012 08:00 1
10308 05 3月 2012 09:00 1
Specify the Second Pair of Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
輸入 begin_snap2 的值:
--輸入時間片
Specify the Second Pair of Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
輸入 begin_snap2 的值: 10306
Second Begin Snapshot Id specified: 10306
輸入 end_snap2 的值: 10308
ü 指定生成報告名稱,生成報告
Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is awrdiff_1_10296_1_10306.html To use this name,
press
輸入 report_name 的值: --使用預設名稱,保持為空
Using the report name awrdiff_1_10296_1_10306.html
相關文章
- 手工生成AWR分析報告
- Oracle生成awr報告Oracle
- Oracle 生成awr報告Oracle
- Oracle 11g 手工跑AWR報告Oracle
- 【AWR】Oracle批量生成awr報告指令碼Oracle指令碼
- 生成awr報告的指令碼指令碼
- 自動生成AWR HTML報告HTML
- 【AWR】自動生成AWR報告指令碼以及用法指令碼
- 【效能優化】AWR的手工生成優化
- AWR(Automatic Workload Repository)——比較報告的生成(2)!
- 定時自動生成awr報告
- 指令碼:定時生成awr報告指令碼
- ORACLE 11G生成AWR報告Oracle
- AWR報告自動生成指令碼指令碼
- 自動生成awr報告指令碼指令碼
- 【AWR】通過AWR報告中記錄的 SQL Id獲得SQL語句的執行計劃SQL
- awr報告每天自動生成指令碼指令碼
- 轉貼:批量生成awr報告指令碼指令碼
- Oracle 11g RAC 如何生成AWR報告?Oracle
- Oracle 11g RAC生成 AWR 報告方法Oracle
- 執行awrrpt.sql生成awr報告報ora-06502錯誤SQL
- 本機生成遠端資料庫AWR報告資料庫
- shell指令碼實現自動生成awr報告指令碼
- 對於AWR報告的幾個片段分析。
- 一個自動生成awr報告的shell指令碼指令碼
- oracle實用sql(9)--批量生成一天的ash報告或awr報告OracleSQL
- AWR解析報告分析
- mysql-awr報告MySql
- oracle效能awr報告Oracle
- 如何在12.2版本ADG備庫生成AWR報告
- 達夢資料庫如何來配置並生成AWR報告資料庫
- 自動生成AWR報告並以郵件附件傳送
- Oracle10g 自動生成AWR報告的指令碼Oracle指令碼
- Oracle 11.2.0.3.0中執行awrrpt.sql生成awr報告報ora-06502錯誤OracleSQL
- 實戰記錄之SQL server報錯手工注入SQLServer
- 在Oracle 11.2.0.3.0中執行awrrpt.sql生成awr報告報ora-06502錯誤OracleSQL
- 手工生成HTML格式AWR遇到Bug 13527323一例HTML
- oracle rac 單個例項不能生成awr報告的問題Oracle