加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle无法收集AWR报错ORA-13516

发布时间:2020-12-12 14:20:51 所属栏目:百科 来源:网络整理
导读:今天在看一条应用反应说执行不出来的SQL时,发现数据库中的AWR报告没有自动收集,最近的还停留在9月26日的,查看当前的时间是10月20日,现在有意思了,怎么会这样的,默认的AWR是1个小时收集一次,保留8天(此数据库版本为11.2.0.4)。 下面来检查一下AWR的设

今天在看一条应用反应说执行不出来的SQL时,发现数据库中的AWR报告没有自动收集,最近的还停留在9月26日的,查看当前的时间是10月20日,现在有意思了,怎么会这样的,默认的AWR是1个小时收集一次,保留8天(此数据库版本为11.2.0.4)。

下面来检查一下AWR的设置情况:

SQL>showparameterstatistics_level

NAMETYPEVALUE
-----------------------------------------------------------------------------
statistics_levelstringTYPICAL

SQL>select*fromdba_hist_wr_control;

DBIDSNAP_INTERVALRETENTIONTOPNSQL
-------------------------------------------------------------------------------
2574787718+0000001:00:00.0+0000800:00:00.0DEFAULT

statistics_level设置为TYPICAL:收集数据库自动管理的所有数据。

收集间隔snap_interval为1小时,保留时间retention为8天。

这些设置都正常。

又想到AWR收集后存放在SYSAUX表空间中,是不是表空间满了么?

TABLESPACE_NAMESIZE_GFREE_GUSED_PCT
----------------------------------------------------------------------
SYSAUX2.780.5181.50%

可以看到有虽然SYSAUX表空间不大但也还有空间,看来也不是SYSAUX表空间的问题。

再去看最近后台的alert日志也都是正常的日志切换内容没有任何的报错的信息。

既然没有报错,那我手动收集一下AWR总是可以的吧,于是执行下面的语句

SQL>execdbms_workload_repository.modify_snapshot_settings(retention=>21600);
BEGINdbms_workload_repository.modify_snapshot_settings(retention=>21600);END;

*
ERRORatline1:
ORA-13516:AWROperationfailed:onlyasubsetofSQLcanbeissued
ORA-06512:at"SYS.DBMS_WORKLOAD_REPOSITORY",line174
ORA-06512:at"SYS.DBMS_WORKLOAD_REPOSITORY",line222
ORA-06512:atline1

从上面可以看到,手动收集AWR报错,那既然有报错信息就可以根据报错进行处理。

先来看看这个报错是什么意思

SQL>!oerrora13516
13516,00000,"AWROperationfailed:%s"
//*Cause:TheoperationfailedbecauseAWRisnotavailable.The
//possiblecausesare:AWRschemanotyetcreated;AWR
//notenabled;AWRschemanotinitialized;ordatabase
//notopenorisrunninginREADONLYorSTANDBYmode.
//*Action:checktheaboveconditionsandretrytheoperation.

后面开始在MOS和百度进行搜索,MOS找到一篇文档与这里的报错很相似,但对应的版本10.1到10.2,与我当前的版本不一致。后来看到一篇博客介绍说到AWR是由后台进程MMON执行的收集的,于是查看服务器上的MMON进程

SQL>!ps-ef|grepmmon
oracle154842406113:24:07pts/50:00grepmmon

居然没有!

看来MMON进程是被DOWN掉了,那又是什么时候DOWN掉的呢,又想到AWR停留在9月26日,于是去看那天的alert日志,结果有重大发现:

8e4f173e7d678f172e660470c07c0d69.png

看到26号那天晚上对数据库做了shutdown操作,但很快shutdown又被取消了,这过程中MMON和MMNL进程被down了,后来数据库一直没有重启过,所以MMON进程就一直也没有启动,于是今天的问题就被发现了。

现在找到了原因,那如何解决呢?怎么把MMON进程能够启起来呢?

上网查了很多,没有找到相关的解决方法。最终的方法就是把数据库重启。

如果有大神知道如何在不重启实例的情况把MMON进程启动,希望赐教。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读