【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程式設計師面試筆試寶典》,作者:李華榮。