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