Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1341866
  • 博文数量: 169
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 3800
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-30 13:00
个人简介

About me:Oracle ACE pro,optimistic,passionate and harmonious. Focus on ORACLE,MySQL and other database programming,peformance tuning,db design, j2ee,Linux/AIX,Architecture tech,etc

文章分类

全部博文(169)

文章存档

2024年(24)

2023年(28)

2022年(43)

2020年(62)

2014年(3)

2013年(9)

分类: Oracle

2023-04-25 09:10:15

      升级到Oracle 12c,有时会看到MMON_SLAVE模块的CPU使用率很高。这些模块与12cR1新特性Automatic Report Capturing(自动报告捕获功能)有关。

     Oracle 11g引入了real-time SQL monitoring,用于实时监控SQL在实现中的性能,Oracle 12c进一步扩展了其引入的历史SQL监控功能。该功能类似于通过后台进程MMON_SLAVE定期对存储在数据库表中的SQL监控信息进行ASH信息的历史管理。

     作为该功能的一部分,一些监控SQL由MMON_SLAVE执行,以识别资源密集型SQL和为这些SQL自动生成SQL监控报告。这些SQL只消耗很少的CPU,预期行为是一个新功能。这样的监控查询可以从(G)V$SQLSTATS中识别出来。


    官方说由于12.1中的监控活动,MMON消耗的CPU很少。然而,如果CPU消耗非常高,那么这不是预期的行为,可能是由于优化器为SQL语句选择了次优计划。


     从以下两个MMON_SLAVE执行与监视器相关的查询时,CPU消耗和时间都很高:
1)经常在AWR TOP 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
...;
2)在RAC和NON-RAC环境中,Alert.log中都可能频繁出现以下错误。失败的查询始终针对GV$SQL_MONITOR执行:

ORA-12850: Could not allocate slaves on all specified instances: 3 needed, 2 allocated
TIP: ORA-12850 M002 trace maybe show as the following, Note that the red font text matches the SQL above
ORA-12850: Could not allocate slaves on all specified instances: 2 needed, 0 allocated
Dump of memory from 0xC00000194F9726C8 to 0xC00000194F98840C
C00000194F9726C0                   57495448 204D4F4E          [WITH MON]
C00000194F9726D0 49544F52 5F444154 41204153 20285345  [ITOR_DATA AS (SE]
C00000194F9726E0 4C454354 20494E53 545F4944 2C204B45  [LECT INST_ID, KE]
C00000194F9726F0 592C204E 564C3228 50585F51 43534944  [Y, NVL2(PX_QCSID]
C00000194F972700 2C204E55 4C4C2C20 53544154 55532920  [, NULL, STATUS) ]
C00000194F972710 53544154 55532C20 46495253 545F5245  [STATUS, FIRST_RE]
C00000194F972720 46524553 485F5449 4D452C20 4C415354  [FRESH_TIME, LAST]

解决方案:
参考下面提供的解决方案:

ORA-12850 is Raised by Mmon Slave Automatic Report Flush Action (文档 ID 2217969.1)
High CPU Usage and/or Frequent Occurrences of ORA-12850 For Monitor Queries by MMON From 12.1 (文档 ID 2102131.1)
bug:24554937 ORA-12850 WHILE MMON SLAVE AUTOMATIC REPORT FLUSH ACTION

禁止这个特性即可:
alter system set "_report_capture_cycle_time"=0; /* Default is 60 seconds */ 


阅读(3500) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~