The following example illustrates an Oracle configuration where the user and associated server process are on separate machines (connected via a network).
An instance is currently running on the computer that is executing Oracle (often called the host or database server).
A computer running an application (a local machine or client workstation) runs the application in a user process. The client application attempts to establish a connection to the server using the proper Net8 driver.
The server is running the proper Net8 driver. The server detects the connection request from the application and creates a (dedicated) server process on behalf of the user process.
The user executes a SQL statement and commits the transaction. For example, the user changes a name in a row of a table.
The server process receives the statement and checks the shared pool for any shared SQL area that contains an identical SQL statement. If a shared SQL area is found, the server process checks the user's access privileges to the requested data and the previously existing shared SQL area is used to process the statement; if not, a new shared SQL area is allocated for the statement so that it can be parsed and processed.
The server process retrieves any necessary data values from the actual datafile (table) or those stored in the system global area.
The server process modifies data in the system global area. The DBWn process writes modified blocks permanently to disk when doing so is efficient. Because the transaction committed, the LGWR process immediately records the transaction in the online redo log file.
If the transaction is successful, the server process sends a message across the network to the application. If it is not successful, an appropriate error message is transmitted.
Throughout this entire procedure, the other background processes run, watching for conditions that require intervention. In addition, the database server manages other users' transactions and prevents contention between transactions that request the same data.
These steps describe only the most basic level of operations that Oracle performs.
From the above discussion now it is known that:
Oracle processes are server processes that perform, communicate with and work for the user processes. These server processes handle requests from connected user processes. They communicate with the user process and call other processes to carry out requests. Say, if the user wants to access data not already in the SGA it calls a process to read it in from disk.
Background processes are those processes that perform maintenance work for the Oracle server.