MMON进程手工启动

手工启动MMON进程

1. 故障现象

#某帅哥接到业务人员反映系统缓慢,RAC环境

#生成AWR报告发现节点1没有数据

#查询快照视图,发现只有节点1没有快照记录,节点2正常存在快照记录

SYS > select INSTANCE_NUMBER,count(*) from dba_hist_snapshot group by INSTANCE_NUMBER;

#思考:如果两个节点都没有快照,考量的方向可能原因:快照关闭了

【#查询视图

SYS > select * from dba_hist_wr_control;

DBID SNAP_INTERVAL        RETENTION            TOPNSQL
---------- -------------------- -------------------- ----------
 754170409 +40150 00:00:00.0    +00008 00:00:00.0    DEFAULT

#关闭awr快照命令

SYS > begin DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(11520,0); end;

#调整快照间隔30分钟及保留5天

exec dbms_workload_repository.modify_snapshot_settings(interval=>30,retention=>5*24*60); 】

#通过查询MMON进程发现,在节点一的系统上,没有MMON进程服务,因此判断,由于MMON进程未正常启动,导致AWR快照无法生成,缺失快照信息

ps -ef|grep mmon |grep -v grep

2. 什么是MMON进程

管理监控进程 MMON||MMOL

MMON通过AWR间隔时间,将视图信息写入快照中

MMIL通过AWR间隔时间,将缓冲区中ASH写满,写入磁盘中

3. 模拟MMON进程缺失

[root@enmo ~]#  ps -ef|grep mmon |grep -v grep

oracle   16947     1  0 Apr13 ?        00:00:08 ora_mmon_ENMO

#KILL MMON进程

[root@enmo ~]# kill -9 16947

[root@enmo ~]#  ps -ef|grep mmon |grep -v grep

#手工创建一个快照

SYS > begin

dbms_workload_repository.create_snapshot();

end;

/

PL/SQL procedure successfully completed.

#再次查询进程

[root@enmo ~]#  ps -ef|grep mmon |grep -v grep --并未启动

4. 手工启动MMON进程

SYS > alter system enable restricted session;

[root@enmo ~]#  ps -ef|grep mmon |grep -v grep

oracle   21960     1  0 20:18 ?        00:00:00 ora_mmon_ENMO

SYS > alter system disable restricted session;

[root@enmo ~]#  ps -ef|grep mmon |grep -v grep

oracle   21960     1  0 20:18 ?        00:00:00 ora_mmon_ENMO

#如果能重启数据库,重启集群,重启系统都可以实现,但是操作细腻度最小,执行上述操作

上一篇:小甲鱼PE详解之输入表(导出表)详解(PE详解09)


下一篇:oracle数据库的完整性约束规则详解