环境:Oracle 11.2.0.4 RAC
现象:sysaux空间满导致无法正常生成快照,清理空间后,手工生成快照可以成功,但是观察自动生成快照依然是不成功。
之前了解到awr对应的相关后台进程是mmon,那么如何重启这个mmon进程呢?
起初我误以为是这种非核心进程是kill掉会自动启动,实际在实验环境中测试发现杀掉mmon进程并不会再自动起来。
那想启动mmon进程难道要重启数据库吗?当然,重启数据库自然是可以实现重启mmon的目的,但是这对于绝大多数的生产环境来说,如果为这样的需求去申请重启数据库都是几乎不可接受的。
下面我在实验环境做一个实际的演示:
当前节点mmon进程的信息如下:[oracle@db01 ~]$ ps -ef|grep _mmon|grep -v grep
grid 5471 1 0 Dec13 ? 00:00:07 asm_mmon_+ASM1
oracle 7476 1 0 12:09 ? 00:00:05 ora_mmon_orcl1
正确重新启动mmon的方法是在业务闲时启用restricted模式,再立马禁用:alter system enable restricted session;
alter system disable restricted session;
为了尽可能的减少设置restricted模式带来的影响,所以建议最好两个语句一起复制执行。
Tips:启用restricted模式后,应用新连接数据库的会话将直接报错ORA-12526无法连接,直到禁用restricted模式后才可以恢复,具体现象如下:[oracle@rac1-server ~]$ sqlplus jingyu/jingyu@192.168.1.107/orcl
SQL*Plus: Release 10.2.0.5.0 - Production on Fri Dec 14 15:33:58 2018
Copyright (c) 1982, 2010, Oracle. All Rights Reserved.
ERROR:
ORA-12526: TNS:listener: all appropriate instances are in restricted mode
再去观察mmon进程已经正常重启:[oracle@db01 ~]$ ps -ef|grep _mmon|grep -v grep
grid 5471 1 0 Dec13 ? 00:00:07 asm_mmon_+ASM1
oracle 15298 1 0 15:33 ? 00:00:00 ora_mmon_orcl1
可以看到,ora_mmon_orcl1进程的启动时间由12:09变为15:33,说明是已经成功重启了。再去观察自动生成快照已经正常。
补充说明:
后续了解到,其实除了mmon进程外,还有一个mmnl进程也是随着一起重启的。
关于这两个进程和awr的具体关系描述,可以参考eygle的文章,引用如下:
可以看到,mmon和mmnl这两个后台进程在Oracle 10g就已经随着AWR一起引入,作用都与awr自动收集相关。