mmon_slave执行监控的sql语句消耗大量cpu?


12.1的MMON的监控SQL消耗很高的CPU以及频繁出现ORA-12850 或者 ORA-12751错误 (文档 ID 2440137.1)

文档内容


12.1版本中因为监控行为,导致 MMON 进程占用大量的 CPU。


 

适用于:

Oracle Database Cloud Exadata Service - 版本 N/A 和更高版本
Oracle Database Cloud Service - 版本 N/A 和更高版本
Oracle Database - Enterprise Edition - 版本 12.1.0.1 和更高版本
Oracle Database Cloud Schema Service - 版本 N/A 和更高版本
Oracle Database Exadata Cloud Machine - 版本 N/A 和更高版本
本文档所含信息适用于所有平台

症状

  • 大量的 CPU 时间花费在 MMON_SLAVE 的执行监控的 SQL 语句:

    WITH MONITOR_DATA AS (SELECT INST_ID, KEY, NVL2(PX_QCSID, NULL, STATUS)STATUS,
    FIRST_REFRESH_TIME, LAST_REFRESH_TIME, REFRESH_COUNT, PROCESS_NAME, SID, SQL_ID,
    SQL_EXEC_START, SQL_EXEC_ID, DBOP_NAME, DBOP_EXEC_ID, SQL_PLAN_HASH_VALUE,
    SESSION_SERIAL#, SQL_TEXT, IS_FULL_SQLTEXT, PX_SERVER#, PX_SERVER_GROUP, PX_SERVER_SET,
    PX_QCINST_ID, PX_QCSID, CASE WHEN ELAPSED_TIME < (CPU_TIME+ APPLICATION_WAIT_TIME+ CONCURRENCY_WAIT_TIME+ CL
    ...;
     
  • 无论是 RAC 或非 RAC,在告警日志中会不断出现ORA-12850的报错,失败的 SQL 语句都是基于 GV$SQL_MONITOR 的查询。错误信息:

    Thu Sep 08 04:00:41 2016
    Errors in file /app/oracle/diag/rdbms/dbname/dbinstance/trace/dbinstance_m002_14490.trc:
    ORA-12850: Could not allocate slaves on all specified instances: 3 needed, 2 allocated

     

  • 在没有使用并行时,也会有 ORA-12751的错误出现。



更改

数据库升级到12.1

原因

12C 中引入 “自动捕获报告” 的特性,该特性的其中一部分功能,MMON_SLAVE 进程会监控占用资源较多的 SQL,并且自动对这些 SQL 产生 SQL 监控报告。
作为新特性,这些SQL占用一定的CPU资源也是预期的。这些SQL可以在(G)V$SQLSTATS中查询到。

如果相关的 SQL 占用太多的 CPU 资源,那么是不正常的,很可能是由于优化器使用了不好的执行计划引起。
可能是和12C的新特性“自适应查询” 有关:

 

Document 2031605.1 Adaptive Query Optimization

 

解决方案

1,关闭“自动捕获报告”的特性。

SQL> alter system set "_report_capture_cycle_time"=0; /* Default is 60 seconds */

上面的设置没有任何负面影响,该设置只会关闭“自动捕获报告”的特性,不会关闭原来的 SQ Monitor 的功能,SQL Monitor 的功能可以被正常使用。

或者

2,在 OS 层面杀掉 MMON_SLAVE 进程,sid和serial可以在 ASH 数据中获得。

 注意:_report_capture_cycle_time=0 /* 该参数可以在数据库立即修改 */

 

关于该问题在12.1.0.2版本下有一些已知的Bug,这些 bug 在12.1.0.2的最新PSU上都有修复,强烈建议应用12.1.0.2的最新 PSU。

Document 1924126.1 12.1.0.2 Patch Set Updates - List of Fixes in each PSU

  

参考

NOTE:21749315.8 - Bug 21749315 - ORA-600 [keomnReadBindsFromStream:magic]
BUG:24554937 - ORA-12850 WHILE MMON SLAVE AUTOMATIC REPORT FLUSH ACTION


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM