【DB笔试面试531】在Oracle中,进程mman、mmnl和mmon这3个进程的作用分别是什么?

  • 2019 年 10 月 8 日
  • 筆記

题目部分

在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程序员面试笔试宝典》,作者:李华荣。