
The processes in an Oracle Database system can be divided into two major groups:
• User processes that run the application or Oracle tool code.
• Oracle Database processes that run the Oracle database server code (including server processes and background processes).
When a user runs an application program or an Oracle tool such as SQL*Plus, Oracle Database creates a user process to run the user’s application. Oracle Database also creates a server process to execute the commands issued by the user process. In addition, the Oracle server also has a set of background processes for an instance that interact with each other and with the operating system to manage the memory structures, asynchronously perform I/O to write data to disk, and perform other required tasks.
The process structure varies for different Oracle Database configurations, depending on the operating system and the choice of Oracle Database options. The code for connected users can be configured as a dedicated server or a shared server.
• Dedicated server: For each user, the database application is run by a user process that is served by a dedicated server process that executes Oracle database server code.
• Shared server: Eliminates the need for a dedicated server process for each connection. A dispatcher directs multiple incoming network session requests to a pool of shared server processes. A shared server process serves any client request.