亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

AWR收集緩慢、掛起的幾種常見情況分析

發布時間:2020-08-09 21:48:59 來源:ITPUB博客 閱讀:366 作者:不一樣的天空w 欄目:關系型數據庫

AWR Automatic Workload Repository )作為對數據庫性能診斷的工具,采集與性能相關的統計數據,根據這些統計數據中的性能指標,以跟蹤潛在的問題。若因某些情況導致相關數據無法收集,就會對數據庫性能診斷大打折扣。

 

以下列舉 AWR 收集緩慢、掛起或缺失常見的幾種情況:

  • STATISTICS_LEVEL  參數不為 ALL TYPICAL

  • SYSAUX 表空間不足

  • 系統資源 I/O CPU 使用率過高

  • MMON/MMNL 進程異常

  • 相關 FIXED TABLE 統計信息不準確

 

1、STATISTICS_LEVEL  參數不為 ALL TYPICAL

初始化參數 STATISTICS_LEVEL AWR 的采集信息受到參數 STATISTICS_LEVEL 的影響。這個參數有三個值:

BASIC AWR 統計信息的關閉,只收集少量的數據庫統計信息。

TYPICAL :默認值,只有部分的統計收集,都是需要監控 oracle 數據庫的典型行為。

ALL :所有可能的統計都被捕捉,并且有操作系統的一些信息,這個級別的捕捉用的較少,比如要更多的 sql 診斷信息。

一般不會隨便修改該參數,都使用默認值 TYPICAL ,所以這種情況下導致 AWR 無法收集統計數據的很少的。

 

2、SYSAUX 表空間不足

AWR 采集的統計數據都以 WRM$_*   WRH$_* 的格式命名的表存儲在 SYSAUX 表空間上( 代表元數據 (metadata) ,而 代表歷史數據  (historical) )。可通過 @?/rdbms/admin/awrinfo.sql x$kewrtb 查詢相關的表信息。雖然 SYSAUX 表空間不足導致 AWR 無法生成是個低級問題 ,但是有一種情況需要注意,因為 BUG 等導致 ASH/AWR 的基表數據無法清理。如:

SQL> select * from dba_hist_wr_control;      DBID SNAP_INTERVAL        RETENTION            TOPNSQL 
---------- -------------------- -------------------- ---------262389084 +00000 01:00:00.0    +00007 00:00:00.0    DEFAULT

正常的每小時產生一個 SNAPSHOT ,保留 7 天。但一些基表如 WRH$_ACTIVE_SESSION_HISTORY 因為某些原因沒有根據 sys.wrm$_wr_control 的設定進行清理。 SNAPSHOT 快照的保留就會超過 7 天,這時會導致 SYSAUX 被撐爆,以及收集 AWR 報告很慢的情況。具體解決辦法 2 個:

1)alter session set “_swrf_test_action”=72;

2) 手工刪除過期無用的快照:

exec dbms_workload_repository.drop_snapshot_range(low_snap_id => xxx, high_snap_id => xxxx, dbid => 262389084);


MOS 文檔:

WRH$_ACTIVE_SESSION_HISTORY Does Not Get Purged Based Upon the Retention Policy (Doc ID  387914.1 )

 

3、 系統資源 I/O CPU 使用率過高

當系統負載很高時,許多用戶進程都在爭用資源, AWR 報告的收集需要消耗系統主機的性能,當 awr 報告的收集時間超過 15 分鐘,若這個時候數據庫處于相當繁忙的狀態,   數據庫為了保證業務的正常運行,就自動把 AWR 的功能關閉,減少系統的開銷,這是11g 功能的增強 。這種情況基本如下:

 

alert.log 中會出現如下告警信息:

Suspending MMON slave action xxx for 82800 seconds

 

或者 mmon trc 中出現如下的告警信息:

Unable to schedule a MMON slave at: Auto Flush Main 1
  Slave action has been temporarily suspended    - Slave action had prior policy violations.
  Unknown return code: 101

 --可根據https://community.oracle.com/thread/2153562參考:If the system is so over-loaded that it takes over 15 minutes to gather statistics or other MMON tasks, this error is expected.It is a functionality enhancement in 11g, as it prevents MMON from locking 
resources those other processes might be waiting for. In 10g , mmon slaves are allowed to run indefinitely.

從日志看,存在大量的 Slave action has been temporarily suspended 這是 11g 功能的增強,當系統處于 overload 狀態時, MMON 進程收集統計信息超過 15 分鐘,則會終止該任務,  10g 會無限延期。所以系統資源不足也會導致 AWR 統計信息無法正常收集。

 

為什么是 15 分鐘?請參考 MOS 文檔:

Troubleshooting ORA-12751 "cpu time or run time policy violation" Errors ( 文檔  ID 761298.1)

Troubleshooting: Missing Automatic Workload Repository (AWR) Snapshots and Other Collection Issues ( 文檔  ID 1301503.1)

 

4、MMON/MMNL 進程異常

Memory Monitor(MMON) MMON 主要用于 AWR ADDM MMON 會從 SGA 將統計結果寫到系統表中

The Memory Monitor Light (MMNL) mmon 進程主要是內存中 sql 信息, ash 信息的收集工作,如果這些信息需要寫入到磁盤(即一些數據字典表)中,那么就需要 MMNL 進程負責寫入

 

MMON MMNL Mnnn 這些進程用于填充自動工作負載存儲庫( Automatic WorkloadRepository AWR ),這是 Oracle 10g 中新增的一個特性。 MMNL 進程會根據調度從 SGA 將統計結果刷新輸出至數據庫表。 MMON 進程用于“自動檢測”數據庫性能問題,并實現新增的自調整特性。 Mnnn 進程類似于作業隊列的 Jnnn Qnnn 進程; MMON 進程會請求這些從屬進程代表它完成工作。 由此可見, MMON MMNL 進程異常是 AWR 不能自動收集的根本原因。


遇到 AWR 無法收集的情況可以根據文檔( ID 1301503.1 )進行排查,檢查 mmon mmnl 進程是否正常。

ps -ef|egrep "mmon|mmnl"  #查看mmon和mmnl進程是否存oracle    32674      1  0 21:22 ?        00:00:01 ora_mmon_<sid>oracle    32676      1  0 21:22 ?        00:00:01 ora_mmnl_<sid>

這兩個進程是 oracle 的非核心進程,可以 kill 掉,它們會自動啟動進程,并且自動維護。若這兩個進程沒有問題,可以手動生成 AWR 看是否有效:

exec  dbms_workload_repository.create_snapshot();  然后再進一步診斷問題。

因為這兩個進程都非核心進程,所以很多文檔都是說可 kill ,重新喚起這個進程,讓 AWR 可繼續生成。在 11.2.0.4 中可能會存在起不來的情況,原因根據 MOS 文檔: AWR Snapshots Are Not Being Created Because MMON Is Not Being Respawned ( 文檔  ID 2023652.1) 可知:

AWR收集緩慢、掛起的幾種常見情況分析

 

5、FIXED TABLE 統計信息不準確

 

查看 mmon  進程的 trace 文件,出現以下報錯:

** KEWROCISTMTEXEC - encountered error: (ORA-12751: cpu time or
 run time policy violation)
  *** SQLSTR: total-len=295, dump-len=240,
      STR={insert into WRH$_SERVICE_STAT   (snap_id, dbid,
      instance_number,    service_name_hash, stat_id, value) select
      :snap_id, :dbid, :instance_number,   stat.service_name_hash,
      stat.stat_id, stat.value from  v$active_services asvc, v$service_st}
 DDE rules only execution for: ORA-12751


查看該 SQL 為何執行緩慢,發現 v$service_stats 視圖數量很大。該視圖記錄的是最小的性能統計數據集,其中有個自動 service_name 來著 v$services ,它顯示關于服務的信息。e xpdp 每次備份開始,都會新增一個 service name ,備份結束后會去掉該 service name ,該動作會記錄在 alert log 中,這個動作就會導致 v$service_stats  視圖出現很多 unknown 的記錄。

 

錯誤的執行計劃:

AWR收集緩慢、掛起的幾種常見情況分析

每次邏輯導出時,會在 v$service_stats 視圖中增加 service_name=unknow 的記錄,導致 v$service_stats 視圖中累積存儲了大量 unknow service name 的記錄, AWR 快照生成過程中在執行上述 SQL 時,由于 fixed table 統計信息不準確或者尚無統計信息, oracle 選擇了效率較低的執行計劃, SQL 的執行消耗大量時間,導致 oracle 維護任務 cpu time policy violation AWR 快照生成中斷。

 

解決辦法是:手動收集 fixed table 的統計信息(在 12 c 之前,固定的統計數據沒有自動收集,它是對所有 X$ 基表統計信息的收集,這個收集是要相對比較長時間的,同時評估好收集之后對其它 SQL 語句執行的影響。如 V$SESSION V$PROCESS V$LOCK 等常用視圖相關 SQL 語句的執行計劃影響)

 

select table_name,num_rows,last_analyzed from dba_tab_statistics where last_analyzed is not null order by last_analyzed desc;
 
exec dbms_stats.gather_fixed_objects_stats(no_invalidate => false);

 

fixed table 的統計信息 請參考文檔:Fixed Objects Statistics (GATHER_FIXED_OBJECTS_STATS) Considerations (文檔 ID 798257.1)



向AI問一下細節

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

AI

九江市| 凤凰县| 环江| 中超| 富民县| 清远市| 隆昌县| 紫金县| 南安市| 崇明县| 璧山县| 汶上县| 和静县| 沂南县| 丹棱县| 阳泉市| 获嘉县| 黎平县| 扎囊县| 上杭县| 莆田市| 连云港市| 西畴县| 牟定县| 保山市| 会东县| 天门市| 孝感市| 普兰店市| 桓台县| 山东| 札达县| 开化县| 哈密市| 长寿区| 大连市| 永善县| 城市| 大埔县| 肃南| 公主岭市|