05.21 Oracle性能收集和分析工具—ASH、AWR、ADDM

Automatic Workload Repository,簡稱AWR,Oracle10g下提供的一種性能收集和分 析工具 ,每60分鐘採集 一次 快照 ,存 儲著近 期一段時間內(默認 是7天)數據庫活動的詳細信息。

ASH(Active Session History),以V$SESSION為基礎,每秒採樣一次,記錄活動會話等待的事件,不活動的會話不會採樣 。ASH更注重Session的Event跟蹤 。在實際生產環境 ,Oracle的等待事件是瞬息萬 變的,AWR可能分 析不到最 近五 到十分鐘的性能數據,所以可以通過ASH分析最近的會話活動。ASH 內存 記錄數據 始終是有 限的,ASH buffers 的最 小值 為1MB,最大 值不超過30MB.為了 保存歷史 數據, 引入了AWR。ASH信息 同樣被採集 寫入到AWR負載庫中。 由於內存不是足夠的,所以MMNL進程在ASH寫滿後會將 信息 寫出到AWR負載庫中。

Automatic Database Diagnostic Monitor ,簡稱ADDM,Oracle內部的一個顧問系統,能夠自動的完成最數據庫的一些優化的建 議,給出SQL的優化, 索引 的創建,統計量的收集 等建議。

ASH報告生成:$ORACLE_HOMESQL>@C:\\app\\majb\\product\\11.2.0\\dbhome_1\\RDBMS\\ADMIN\\ashrpt.sql

AWR報告生成:SQL>C:\\app\\majb\\product\\11.2.0\\dbhome_1\\RDBMS\\ADMIN\\awrrpt.sql

ADDM報告生成:SQL>C:\\app\\majb\\product\\11.2.0\\dbhome_1\\RDBMS\\ADMIN\\addmrpt.sql

綜上:如果在一個 小時以內發生 的我們可以通過生成ASH報告 來找出和 性能相關的等待事件和SQL語句 。如果 是1小時以上 或幾天 我們可以通過AWR報告來找出幾小時\\幾天以來最 影響系統的等待事件和SQL語句。ADDM報告 基於AWR,默認 可以保存30天的ADDM報告

動手實驗:AWR報告的生成

在實際的生 產環境 中,AWR除了由Oracle自動生成,也可以通過DBMS_WORKLOAD_REPOSITORY包來 手工創建。

1.手工創建一個數據庫快照snapshotSQL> exec dbms_workload_repository.create_snapshot();

Oracle性能收集和分析工具—ASH、AWR、ADDM

2. 生成AWR報告: 依賴一個SQL腳本:X:oracle\\product\\10.2.0\\db_1\\RDBMS\\Admin\\awrrpt.sql

SQL>@C:\\app\\majb\\product\\11.2.0\\dbhome_1\\RDBMS\\ADMIN\\awrrpt.sql

Oracle性能收集和分析工具—ASH、AWR、ADDM


3. 找到AWR報告分析性能瓶頸

Oracle性能收集和分析工具—ASH、AWR、ADDM

4. 補充:通過SQL獲取ASH\\AWR\\ADDM報告

Oracle性能收集和分析工具—ASH、AWR、ADDM


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


分享到:


相關文章: