Oracle-AWR性能报告解读
概述
關于如何獲取awr以及兩個時間段的awr比對報告請參考如下博文
Oracle-使用awrrpt.sql生成AWR報告
Oracle-awrddrpt.sql比較兩個AWR差異報告
AWR
手動執行一個快照:
Exec dbms_workload_repository.create_snapshot;創建一個AWR 基線
Exec DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(start_snap_id,end_snap_id ,baseline_name);數據從哪里來,放哪里去
參數設置
請訪問
Oracle-AWR管理包
DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS
對應進程
若是mmon若hang則意味著AWR不可用
AWR主要是MMON(Manageability Monitor Process)和它的小工進程(m00x)
MMON的功能包括:
1.啟動slave進程m00x去做AWR快照
2.當某個度量閥值被超過時發出alert告警
3.為最近改變過的SQL對象捕獲指標信息
其他腳本
使用@?/rdbms/admin/awrddrpt可以生成AWR比對報告
使用@?/rdbms/admin/awrgrpt可以生成RAC 全局AWR報告
使用@?/rdbms/admin/ashrpt.sql可以生成ASH報告
單實例下使用@/rdbms/admin/addmrpt.sql可以生成addm自診斷報告
RAC環境下生成指定實例的addm報告使用addmrpti.sql腳本
Oracle10g中推出了新的優化診斷工具:數據庫自動診斷監視工具(Automatic Database Diagnostic Monitor :ADDM)和SQL優化建議工具(SQL Tuning Advisor: STA)。這兩個工具的結合使用,能使DBA節省大量優化時間,也大大減少了系統宕機的危險。簡單點說,ADDM就是收集相關的統計數據到自動工作量知識庫(Automatic Workload Repository :AWR)中,而STA則根據這些數據,給出優化建議。
報告解讀
我們獲取了2018-03-30 0點到01點的AWR報告。我們來逐段分析下
數據庫基本信息
第一行展示了數據庫本身相關的信息:DB Name, DB Id , Instance Name, 數據庫啟動時間,以及版本和是否為RAC模式,沒什么可多說的,很直觀
第二行展示了數據庫主機相關的信息:HostName,操作系統、CPU數量、內核數量、CPU Sockets和內存
http://kodango.com/cpu-topology
如果你只知道CPU這么一個概念,那么是無法理解CPU的拓撲的。事實上,在NUMA架構下,CPU的概念從大到小依次是:Node、Socket、Core、Processor。
隨著多核技術的發展,我們將多個CPU封裝在一起,這個封裝一般被稱為Socket(插槽的意思,也有人稱之為Packet,不知到哪個更加準確?),而Socket中的每個核心被稱為Core。為了進一步提升CPU的處理能力,Intel又引入了HT(Hyper-Threading,超線程)的技術,一個Core打開HT之后,在OS看來就是兩個核,當然這個核是邏輯上的概念,所以也被稱為Logical Processor,本文簡稱為Processor。
綜上所述,一個NUMA Node可以有一個或者多個Socket,一個多核Socket顯然包含多個Core,一個Core如果打開HT則變成兩個Logical Processor。Logical processor只是OS內部看到的,實際上兩個Processor還是位于同一個Core上,所以頻繁的調度仍可能導致資源競爭,影響性能。
該圖引用至http://fishcried.com/2015-01-09/cpu_topology/
第三行展示了快照時間內的數據庫統計信息,很重要
包括Sessions 總數 ,Cursors/Session:平均每個session打開了多少cursor
Elapsed 逝去時間、DBTime,超級重要的指標
Elapsed 快照逝去時間,如果為了診斷特定時段性能問題則不宜過長,一般15 分鐘~2 、3 個小時。如果是看全天負載那么可以長一些。較為常見是60分鐘或者120分鐘,根據實際需求,無標準。
Cursors/session : open_cursors 如果設置的不合理會引起ORA-01000: maximum open cursors exceeded問題
總結
以上是生活随笔為你收集整理的Oracle-AWR性能报告解读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle启动和停止的方式详解
- 下一篇: Linux-find命令