Database Reference
In-Depth Information
SMON: The System Monitor
SMON is the process that gets to do all of the system-level jobs. Whereas PMON was interested in individual processes,
SMON takes a system-level perspective of things and is a sort of garbage collector for the database. Some of the jobs it
does include the following:
Cleans up temporary space : With the advent of true temporary tablespaces, the chore of
cleaning up temporary space has lessened, but it has not gone away. For example, when
building an index, the extents allocated for the index during the creation are marked as
TEMPORARY . If the CREATE INDEX session is aborted for some reason, SMON is responsible for
cleaning them up. Other operations create temporary extents that SMON would be responsible
for as well.
Coalesces free space : If you are using dictionary-managed tablespaces, SMON is responsible
for taking extents that are free in a tablespace and contiguous with respect to each other
and coalescing them into one larger free extent. This occurs only on dictionary-managed
tablespaces with a default storage clause that has PCTINCREASE set to a nonzero value.
Recovers transactions active against unavailable files : This is similar to its role during database
startup. Here, SMON recovers failed transactions that were skipped during instance/crash
recovery due to a file(s) not being available to recover. For example, the file may have been on
a disk that was unavailable or not mounted. When the file does become available, SMON will
recover it.
Performs instance recovery of a failed node in RAC : In an Oracle RAC configuration, when a
database instance in the cluster fails (e.g., the machine the instance was executing on fails),
some other node in the cluster will open that failed instance's redo log files and perform a
recovery of all data for that failed instance.
Cleans up OBJ$ : OBJ$ is a low-level data dictionary table that contains an entry for almost every
object (table, index, trigger, view, and so on) in the database. Many times, there are entries
in here that represent deleted objects, or objects that represent “not there” objects, used in
Oracle's dependency mechanism. SMON is the process that removes these rows that are no
longer needed.
Manage undo segments : SMON will perform the automatic onlining, offlining, and shrinking of
undo segments.
Offlines rollback segments : When using manual rollback segment management (not
recommended, you should be using automatic undo management), it is possible for the
DBA to offline , or make unavailable, a rollback segment that has active transactions. It may
be possible that active transactions are using this offlined rollback segment. In this case, the
rollback is not really offlined; it is marked as “pending offline.” In the background, SMON will
periodically try to truly take it offline, until it succeeds.
That should give you a flavor of what SMON does. It does many other things, such as flush the monitoring statistics
that show up in the DBA_TAB_MODIFICATIONS view, flush the SCN to timestamp mapping information found in the
SMON_SCN_TIME table, and so on. The SMON process can accumulate quite a lot of CPU over time, and this should be
considered normal. SMON periodically wakes up (or is woken up by the other background processes) to perform these
housekeeping chores.
 
Search WWH ::




Custom Search