溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么手工生成ASH報告

發(fā)布時間:2021-11-04 09:54:54 來源:億速云 閱讀:122 作者:柒染 欄目:建站服務器

這期內容當中小編將會給大家?guī)碛嘘P怎么手工生成ASH報告,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

 

我們之前探討過AWR報告的手工方法(http://space.itpub.net/17203031/viewspace-700471),借助AWR報告的定時snapshot功能,我們可以有選擇性的選取時間段系統(tǒng)數據進行分析,最后獲取綜合診斷情況。除了AWR報告,Oracle10g版本中還推出了ASHADDM兩個工具,用于進行系統(tǒng)細粒度分析和自動化專家優(yōu)化方案。其中,ASHActive Session History)是一種比AWR更加細粒度分析系統(tǒng)會話、發(fā)現前端應用梗塞之處的工具。

 

對于Oracle數據庫而言,大部分的請求都是以會話session的方式出現。一般情況下,單一會話對系統(tǒng)性能的影響是很小的,特別是OLTP系統(tǒng)。如果由于會話的原因引起系統(tǒng)性能,其中重要表現大都是前端應用無響應、無有效連接,同時系統(tǒng)表現出會話執(zhí)行SQL或者等待事件的信息。同時,特定的Server Process存在高消耗的情況。

 

在會話引起性能問題或者高消耗發(fā)生的時候,我們可以通過v$session、v$session_wait等視圖定位到是哪個會話的那個SQL語句引發(fā)的問題,及時進行處理。但是實際中引起一直阻塞的會話是比較少見的,一旦會話結束或者解除終止,信息就會從v$sessionv$session_wait中被剔除掉。這個時候如果需要進行性能觀察就需要使用ASHActive Session History)報表了。

 

ASHOracle 10g中推出的一系列性能監(jiān)控報表的一個。ASH原理同AWR有相似之處,都是采用性能鏡像收集的原理。只是ASH收集的頻率更高,大約每秒進行一次收集,這樣可以盡可能保存住高消耗會話的信息。其次就是收集范圍上ASH不會如同AWR那樣的廣范圍收集,主要集中在會話、關鍵SQLTop活動方面。與AWR默認大約保存一個月有所不同的是,ASH保存的時段比較短,為幾天到幾周的范圍。不過對于臨時性性能分析或者關鍵業(yè)務時段分析而言已經夠用了。

 

 

Oracle10g后,可以使用OEM的可視化工具生成ASH或者查看關鍵Top信息。但是當系統(tǒng)沒有OEM可以使用或者根本沒有安裝OEM的時候,手工生成ASH報告就是不錯的方式。本篇介紹如何手工生成ASH報告,權當記錄。

 

 

1、  準備環(huán)境,調用執(zhí)行腳本

 

AWR手工生成的文章中,筆者選擇了在Oracle服務器Linux端生成報告文件,之后再使用FTP工具進行下載到本地。本次使用客戶端的腳本進行生成,為了保證一致性,盡可能使用與服務器相同的客戶端腳本。

 

在命令行工具中定位到適當的目錄下,之后啟動Sqlplus工具。

 

 

SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 7 16 21:23:06 2011

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

 

SQL> conn sys/oracle@orcl as sysdba;

已連接。

SQL>

 

SQL> select dbid, name,log_mode from v$database;

 

      DBID NAME      LOG_MODE

---------- --------- ------------

1192098220 ORCL      NOARCHIVELOG

 

 

之后調用生成腳本ashrpt.sql。如果是使用Sqlplus工具,可以直接使用?來代指Oracle本地的$ORACLE_HOME目錄。

 

 

SQL> @?/rdbms/admin/ashrpt.sql

 

 

如果是使用PL/SQL Developer等工具,就需要直接指定目錄位置,?代指符的作用就不存在了。

 

調用腳本之后,就需要輸入連帶的參數信息。

 

2、  輸入相關參數

 

ü        輸入報告類型

 

AWR一樣,ASH提供txthtml兩種格式的報表選擇。

 

 

SQL> @?/rdbms/admin/ashrpt.sql

 

Current Instance

~~~~~~~~~~~~~~~~

 

   DB Id    DB Name      Inst Num Instance

----------- ------------ -------- ------------

 1192098220 ORCL                1 orcl

 

Specify the Report Type

~~~~~~~~~~~~~~~~~~~~~~~

Enter 'html' for an HTML report, or 'text' for plain text

Defaults to 'html'

輸入 report_type 的值:

 

 

腳本第一步要求輸入生成報告的類型,默認為html。如果希望生成txt格式,就輸入text。

 

ü        輸入分析時段信息

 

ASH是一個時段分析報告,需要用戶輸入進行分析的時間范圍開始點。

 

 

Type Specified:  html

 

Instances in this Workload Repository schema

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   DB Id     Inst Num DB Name      Instance     Host

------------ -------- ------------ ------------ ------------

* 1192098220        1 ORCL         orcl         WWW-0E6111DF

                                                F74

 

Defaults to current database

Using database id: 1192098220

Defaults to current instance

Using instance number: 1

 

ASH Samples in this Workload Repository schema

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Oldest ASH sample available:  13-7 -11 19:32:48  [   4435 mins in the past]

Latest ASH sample available:  16-7 -11 21:25:54  [      2 mins in the past]

 

Specify the timeframe. to generate the ASH report

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Enter begin time for report:

 

--    Valid input formats:

--      To specify absolute begin time:

--        [MM/DD[/YY]] HH24:MI[:SS]

--        Examples: 02/23/03 14:30:15

--                  02/23 14:30:15

--                  14:30:15

--                  14:30

--      To specify relative begin time: (start with '-' sign)

--        -[HH24:]MI

--        Examples: -1:15  (SYSDATE - 1 Hr 15 Mins)

--                  -25    (SYSDATE - 25 Mins)

 

Defaults to -15 mins

輸入 begin_time 的值:

 

 

由于ASH分析的粒度到秒一級別,所以輸入的時間段度是以秒的細粒度。Begin_time輸入的時間粒度有兩種方式,根據腳本中提示的內容。一種是絕對開始時間(absolute begin time),包括年月日時分秒,適當省略一部分信息意味著使用當前對應的信息。另一種是相對開始時間(relative begin time),使用“-”號開頭,表示當前時間之前多久。

 

 

輸入 begin_time 的值:  21:15:00

Report begin time specified: 21:15:00

 

 

此處我們希望分析21:15:00開始的五分鐘信息情況。

 

輸入了開始時間,可以定義分析持續(xù)時間duration值。

 

//輸入以分鐘計數的持續(xù)時間

Enter duration in minutes starting from begin time:

Defaults to SYSDATE - begin_time

Press Enter to analyze till current time

輸入 duration 的值:

 

輸入 duration 的值:  5

Report duration specified:   5

 

 

ü        其他相關指定參數

 

ASH報告中分析包括的內容很多,有時候我們可能希望分析的更加有針對性。比如特定的SQL語句分析,特定的會話信息分析等。

 

 

Using 16-7 -11 21:15:00 as report begin time

Using 16-7 -11 21:20:00 as report end time

 

Specify Slot Width (using ashrpti.sql) for 'Activity Over Time' section

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

-- Explanation:

--   In the 'Activity Over Time' section of the ASH report,

--   the analysis period is divided into smaller slots

--   and top wait events are reported in each of those slots.

 

-- Default:

--   The analysis period will be automatically split upto 10 slots

--   complying to a minimum slot width of

--     1 minute,  if the source is V$ACTIVE_SESSION_HISTORY or

--     5 minutes, if the source is DBA_HIST_ACTIVE_SESS_HISTORY.

 

Specify Slot Width in seconds to use in the 'Activity Over Time' section:

Defaults to a value as explained above:

Slot Width specified:

 

Specify Report Targets (using ashrpti.sql) to generate the ASH report

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

-- Explanation:

--   ASH Report can accept "Report Targets",

--   like a particular SQL statement, or a particular SESSION,

--   to generate the report on. If one or more report targets are

--   specified, then the data used to generate the report will only be

--   the ASH samples that pertain to ALL the specified report targets.

 

-- Default:

--   If none of the report targets are specified,

--   then the target defaults to all activity in the database instance.

 

Specify SESSION_ID (eg: from V$SESSION.SID) report target:

Defaults to NULL:

SESSION report target specified:

 

Specify SQL_ID (eg: from V$SQL.SQL_ID) report target:

Defaults to NULL: (% and _ wildcards allowed)

SQL report target specified:

 

Specify WATI_CLASS name (eg: from V$EVENT_NAME.WAIT_CLASS) report target:

[Enter 'CPU' to investigate CPU usage]

Defaults to NULL: (% and _ wildcards allowed)

WAIT_CLASS report target specified:

 

Specify SERVICE_HASH (eg: from V$ACTIVE_SERVICES.NAME_HASH) report target:

Defaults to NULL:

SERVICE report target specified:

 

Specify MODULE name (eg: from V$SESSION.MODULE) report target:

Defaults to NULL: (% and _ wildcards allowed)

MODULE report target specified:

 

Specify ACTION name (eg: from V$SESSION.ACTION) report target:

Defaults to NULL: (% and _ wildcards allowed)

ACTION report target specified:

 

Specify CLIENT_ID (eg: from V$SESSION.CLIENT_IDENTIFIER) report target:

Defaults to NULL: (% and _ wildcards allowed)

CLIENT_ID report target specified:

通過指定一系列的參數變量可以來指定希望分析的會話信息。

 

如果沒有指定,ASH會生成所有模塊的分析信息。

 

ü        文件名指定

 

最后是指定生成的文件名稱信息。

 

 

Specify the Report Name

~~~~~~~~~~~~~~~~~~~~~~~

The default report file name is ashrpt_1_0716_2120.html.  To use this name,

press <return> to continue, otherwise enter an alternative.

輸入 report_name 的值:

 

 

一般使用默認值就可以了。最后會將文件生成提示結束。

 

</TABLE><P>

<BR><A class='awr' HREF='#top'>Back to Top</A><P>

<P>

End of Report

</BODY></HTML>

Report written to ashrpt_1_0716_2120.html

SQL>

3、查看報告

 

在調用目錄上,就可以找到我們生成的ASH文件。

ASH Report For ORCL/orcl

DB Name         DB Id    Instance     Inst Num Release     RAC Host

------------ ----------- ------------ -------- ----------- --- ------------

ORCL          1192098220 orcl                1 10.2.0.1.0  NO  WWW-0E6111DF

 

CPUs           SGA Size       Buffer Cache        Shared Pool    ASH Buffer Size

---- ------------------ ------------------ ------------------ ------------------

   2        584M (100%)       408M (69.9%)       149M (25.6%)        4.0M (0.7%)

 

          Analysis Begin Time:  16-7 -11 21:15:00

            Analysis End Time:  16-7 -11 21:20:00

                 Elapsed Time:         5.0 (mins)

                 Sample Count:           5

 

4、結論

ASHAWRADDMOracle推進的性能優(yōu)化自動化的重要步驟階段。借助這些工具,DBA可以更好的了解分析系統(tǒng)性能,發(fā)現瓶頸所在,更好的維護系統(tǒng)正常運轉。

上述就是小編為大家分享的怎么手工生成ASH報告了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

ash
AI