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.
Shrinks undo segments: SMON will perform the automatic
shrinking of a rollback segment to its optimal size, if it is set.
Offlines rollback segments: 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.
No comments:
Post a Comment