Saturday, January 13, 2018

SMON (System Monitor)

SMON

The System Monitor process (SMON) performs recovery at instance startup if necessary. SMON
is also responsible for cleaning up temporary segments that are no longer in use. If any
terminated transactions were skipped during instance recovery because of file-read or offline
errors, SMON recovers them when the tablespace or file is brought back online.
SMON checks regularly to see whether the process is needed. Other processes can call SMON if
they detect a need for it.
 Instance recovery consists of the following steps:
  1. Rolling forward to recover data that has not been recorded in the data files but that has been recorded in the online redo log. This data has not been written to disk because of the loss of the SGA during instance failure. During this process, SMON reads the redo log files and applies the changes recorded in the redo log to the data blocks. Because all committed transactions have been written to the redo logs, this process completely recovers these transactions. its also perform crash recovery
  2. Opening the database so that users can log on. Any data that is not locked by un recovered transactions is immediately available.
  3. Rolling back uncommitted transactions. They are rolled back by SMON or by the individual server processes as they access locked data.
SMON also performs some space maintenance functions:
  • It combines, or coalesces, adjacent areas of free space in the data files.
  • It deallocates temporary segments to return them as free space in data files. Temporary segments are used to store data during SQL statement processing.
  • In  RAC environment the SMON process of one instance can perform instance recovery for other instances that have failed.
  • SMON wakes up about every 5 minutes to perform housekeeping activities

1 comment: