♣
题目部分
在Oracle中,进程mman、mmnl和mmon这3个进程的作用分别是什么?
♣
答案部分
从如下的输出结果可以看到,每个ASM实例或数据库实例都有这3个进程:
[root@rhel6lhr ~]# ps -ef|grep mm
root 989 2 0 Jun28 ? 00:00:02 [vmmemctl]
grid 3670 1 0 Jun28 ? 00:00:02 asm_mman_+ASM
grid 3684 1 0 Jun28 ? 00:00:05 asm_mmon_+ASM
grid 3686 1 0 Jun28 ? 00:00:17 asm_mmnl_+ASM
oracle 8668 1 0 08:52 ? 00:00:01 ora_mman_orclasm
oracle 8684 1 0 08:52 ? 00:00:07 ora_mmon_orclasm
oracle 8686 1 0 08:52 ? 00:00:22 ora_mmnl_orclasm
oracle 19759 1 0 19:07 ? 00:00:00 ora_mman_ora10g
oracle 19773 1 0 19:07 ? 00:00:00 ora_mmon_ora10g
oracle 19775 1 0 19:07 ? 00:00:00 ora_mmnl_ora10g
其中:
① MMAN(Memory Manager Process,内存管理进程)进程会随着时间推移,根据系统负载的变化和内存需要,自动调整SGA中各个组件的内存大小。
② MMON(Manageability Monitor Process,可管理性监视器进程)和它的slave进程(Mnnn)主要用来维护AWR信息和各种与可管理性相关的后台任务,具体包括:(1)启动slave进程Mnnn去做AWR快照。若MMON进程HANG住,则AWR不可用。(2)当某个测量值(metrics)超过了其度量阀值(threshold value)时发出alert告警。(3)为最近改变过的SQL对象捕获指标信息。
③ MMNL(Manageability Monitor Lite Process)将SGA中的ASH(Active Session History)Buffer中的统计资料写到磁盘。当ASH Buffer满的时候MMNL会把它写到磁盘上。
需要注意的是,若MMON或MMNL进程被kill掉了,则Oracle会自动启动这两个进程,也可以通过执行如下命令来手动启动这两个进程:
ALTER SYSTEM ENABLE RESTRICTED SESSION;--启用
ALTER SYSTEM DISABLE RESTRICTED SESSION; --取消
--Oracle自动启动MMON进程时的告警日志:
Fri Oct 13 02:06:43 2017
Restarting dead background process MMON
Fri Oct 13 02:06:43 2017
MMON started with pid=42, OS id=7647
--执行“ALTER SYSTEM ENABLE RESTRICTED SESSION;”时的告警日志:
Fri Oct 13 02:13:14 2017
Stopping background process MMNL
Stopping background process MMON
Starting background process MMON
Starting background process MMNL
Fri Oct 13 02:13:15 2017
MMON started with pid=16, OS id=7853
ALTER SYSTEM enable restricted session;
Fri Oct 13 02:13:15 2017
MMNL started with pid=42, OS id=7855
本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。