Introduction
Oracle process architecture can be broken down into three major components
- Client Processes - When a user runs an application, the operating system creates a user process to run the user application. This process has Oracle Database libraries (e.g. OCI, JDBC etc) linked into it that allow it to communicate with the database.
- Server Processes - Oracle Database creates server processes to handle the requests of client processes.
- Background Processes - Background processes are additional processes used by the Oracle database engine. The background processes allow the database to service many millions of requests a second and offload certain tasks within the engine. e.g Recovery, Parallel processing, Undo and Redo etc to name just a few.
This page examines the Background Processes and the relationship they have to the SGA as defined in version 23c
Process Diagram

Some of the Changes to Processes in 23c
SMCO - Space Management Coordinator Process
Queries can require large amounts of temporary space. SMON is responsible for cleaning up temporary segments that are no longer in use. As such, temporary space management can affect SMON's scalability for other key tasks. The Space Management Coordinator (SMCO) process is now has the responsibility of managing temporary space, therefore improving the SMON scalability. Other tasks SMCO performs are listed below.
Wnnn worker processes child processes of the SMCO perform the following:
- Preallocate space into locally managed tablespace and SecureFiles segments based on space usage growth analysis.
- Reclaim space from dropped segments.
- Perform fast ingest deferred inserts.
OFSD - Oracle File System Deamon
Originally introduced in 19c, the process has been enhanced in 23c. To improve OFSD throughput, it now has its own local cache for writes and reads. The write cache uses 8 (1 MB) buffers per file connection. It can use up to 256 MB per file system. You can modify this value through the mount option, wcache_size. A read-ahead algorithm is implemented for read operation and it uses 2 (1 MB) per file connection and it can use up to 256 MB per file system. Use the mount option, rcache_size, to modify this value.
The read-write cache is maintained per node, so this provides local cache consistency. In an RAC environment, consistency is guaranteed only after the flush() or close() operation is performed on the file. When two different processes on two different RAC nodes modify a single file and write to the same offset, then the first process that performs the close() operation on the file will have its data written into the file.
RECO - Oracle Recovery Process
The RECO process has been enhanced in 23c for distributed transaction recovery.
By default, the RECO process uses a legacy recovery protocol. Setting ALLOW_LEGACY_RECO_PROTOCOL parameter to FALSE allows RECO to operate in an upgraded recovery mode.
In the new mode all databases involved in a distributed transaction must be release 23c or later. Any distributed recovery will be more secure.
Further Reading
For a full list of Oracle 23c Background process and their function, the following link provides a dynamic view of each process
Oracle 23c Background Processes
Published 23rd February 2024