阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle无法收集AWR报错ORA-13516

165次阅读
没有评论

共计 2256 个字符,预计需要花费 6 分钟才能阅读完成。

今天在看一条应用反应说执行不出来的 SQL 时,发现数据库中的 AWR 报告没有自动收集,最近的还停留在 9 月 26 日的,查看当前的时间是 10 月 20 日,现在有意思了,怎么会这样的,默认的 AWR 是 1 个小时收集一次,保留 8 天 (此 Oracle 数据库版本为 11.2.0.4)。
下面来检查一下 AWR 的设置情况:
SQL> show parameter statistics_level
 
NAME                                TYPE        VALUE
———————————— ———– ——————————
statistics_level                    string      TYPICAL
 
SQL> select * from dba_hist_wr_control;
 
      DBID SNAP_INTERVAL                    RETENTION                  TOPNSQL
———- ——————————– ————————— ———-
2574787718 +00000 01:00:00.0                +00008 00:00:00.0          DEFAULT

statistics_level 设置为 TYPICAL:收集数据库自动管理的所有数据。
收集间隔 snap_interval 为 1 小时,保留时间 retention 为 8 天。
这些设置都正常。
又想到 AWR 收集后存放在 SYSAUX 表空间中,是不是表空间满了么?
TABLESPACE_NAME                SIZE_G          FREE_G          USED_PCT
—————————— ————— ————— ———-
SYSAUX                                  2.78            0.51    81.50%

可以看到有虽然 SYSAUX 表空间不大但也还有空间,看来也不是 SYSAUX 表空间的问题。
再去看最近后台的 alert 日志也都是正常的日志切换内容没有任何的报错的信息。
既然没有报错,那我手动收集一下 AWR 总是可以的吧,于是执行下面的语句
SQL> exec dbms_workload_repository.modify_snapshot_settings(retention=>21600);
BEGIN dbms_workload_repository.modify_snapshot_settings(retention=>21600); END;
 
*
ERROR at line 1:
ORA-13516: AWR Operation failed: only a subset of SQL can be issued
ORA-06512: at “SYS.DBMS_WORKLOAD_REPOSITORY”, line 174
ORA-06512: at “SYS.DBMS_WORKLOAD_REPOSITORY”, line 222
ORA-06512: at line 1

从上面可以看到,手动收集 AWR 报错,那既然有报错信息就可以根据报错进行处理。
先来看看这个报错是什么意思

SQL> !oerr ora 13516
13516, 00000, “AWR Operation failed: %s”
// *Cause:  The operation failed because AWR is not available. The
//          possible causes are: AWR schema not yet created; AWR
//          not enabled; AWR schema not initialized; or database
//          not open or is running in READONLY or STANDBY mode.
// *Action: check the above conditions and retry the operation.

后面开始在 MOS 和百度进行搜索,MOS 找到一篇文档与这里的报错很相似,但对应的版本 10.1 到 10.2,与我当前的版本不一致。后来看到一篇博客介绍说到 AWR 是由后台进程 MMON 执行的收集的,于是查看服务器上的 MMON 进程
 SQL> !ps -ef |grep mmon
  oracle 15484  2406  1 13:24:07 pts/5    0:00 grep mmon

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

Oracle 无法收集 AWR 报错 ORA-13516

看到 26 号那天晚上对数据库做了 shutdown 操作,但很快 shutdown 又被取消了,这过程中 MMON 和 MMNL 进程被 down 了,后来数据库一直没有重启过,所以 MMON 进程就一直也没有启动,于是今天的问题就被发现了。
现在找到了原因,那如何解决呢?怎么把 MMON 进程能够启起来呢?
上网查了很多,没有找到相关的解决方法。最终的方法就是把数据库重启。
如果有大神知道如何在不重启实例的情况把 MMON 进程启动,希望赐教。

更多 Oracle 相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-11/148745.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2256字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中