Monday, September 23, 2024

Difference Between PMON and PMAN Processes in Oracle Database

 When I started my Oracle DBA journey in early 2000s, one of the best advice I received from Oracle's community forums was to make sure to understand underlying Oracle's database architecture. One of the corner-stone of this architecture was Oracle's Background processes. If you are an Oracle DBA, and you don't know what these background processes are, then you are not a DBA. 

Oracle Database's robust performance relies on a network of background processes working harmoniously behind the scenes. These processes, automatically initiated when the database instance starts, ensure seamless operation and optimal performance for multiple users. The presence of specific background processes depends on the database features in use.

In this blog post, I am trying to explain the difference between PMON and PMAN background processes in as simple words as possible. A standard database configuration includes mandatory background processes that run by default in a read/write database instance. These processes are initiated with a minimally configured initialization parameter file. PMON and PMAN are 2 of those mandatory processes.

PMON: The Process Sentinel

The Process Monitor (PMON) serves as a vigilant guardian, periodically scanning for abnormally terminated processes. Upon detection, PMON delegates cleanup tasks to the Cleanup Main Process (CLMN), which orchestrates the termination and session cleanup. This hierarchical approach ensures efficient process management. As an operating system process, PMON operates independently of threads. Its reach extends beyond database instances to Oracle Automatic Storage Management (ASM) and ASM Proxy instances.

PMAN: The Background Process Maestro

The Process Manager (PMAN) expertly oversees a suite of background processes, including:

  • Shared servers
  • Pooled servers
  • Job queue processes

PMAN dynamically monitors, spawns, and terminates these processes as needed, ensuring optimal resource allocation. Its responsibilities encompass:

  • Dispatcher and shared server processes
  • Connection broker and pooled server processes for database resident connection pools
  • Job queue processes
  • Restartable background processes
Like PMON, PMAN operates as an operating system process, independent of threads. Its influence also extends to Oracle ASM and ASM Proxy instances.

Hope that helps.


No comments: