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