The system monitor process (SMON) performs many database maintenance tasks, including the following:
- Maintains the undo tablespace by onlining, offlining, and shrinking the undo segments based on undo space usage statistics. As part of undo maintenance, SMON also helps clean up larger terminated transactions, such as when PMON detects that the process that owned the transaction has terminated and begins the cleanup. SMON may recruit parallel query processes to help roll back these transactions in parallel.
- Cleans up the data dictionary when it is in a transient and inconsistent state.
- Maintains the system change number (SCN) to time mapping table that is used to support Oracle Flashback features.
SMON is resilient to internal and external errors that occur during background activities. SMON can run as a thread or an operating system process. In an Oracle Real Application Clusters (Oracle RAC) database, the SMON process of one instance can perform instance recovery for other instances that have failed.