我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Oracle无法收集AWR报错ORA-13516

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Oracle无法收集AWR报错ORA-13516

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Oracle无法收集AWR报错ORA-13516

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

ORA-13516: AWR Operation failed: string ORACLE 报错 故障修复 远程处理

文档解释ORA-13516: AWR Operation failed: stringCause: The operation failed because AWR is not available. The possible
ORA-13516: AWR Operation failed: string ORACLE 报错 故障修复 远程处理
2023-11-05

oracle 创建用户指定表空间报错ORA-28010: 无法使外部用户, 全局用户或没有验证方法的用户失效

我在plsql里复制了system这个用户的sql我连接了服务器上的oracle之后想执行sql创建一个用户并指定它的表空间结果在navicat里报了这个错误,我以为是system用户的问题,然后我就用sys用户登录结果,还是报这个错误我就连接远程服务器用sq
oracle 创建用户指定表空间报错ORA-28010: 无法使外部用户, 全局用户或没有验证方法的用户失效
2016-01-15

编程热搜

目录