6 Oracle Background Processes Every Good DBA Needs To Know.
Sometimes I get these crazy ideas about interview questions. Ask a Senior DBA the following question, sit back and watch their reaction:
“What does SMCO stand for and what is its purpose?”
I can imagine the DBA go into shock and mumble “Huh?” Nobody would expect that question…
It would make for a fun interview and experiment!
Truth be said, without a Google search, I don’t even know what that process stands for or what it does. And the reality of it is, I really don’t need to know, I can perfectly manage an Oracle database, without knowing what SMCO is.
Just for fun, look it up on Google. For real, this is a background process.
What a Good (Awesome) DBA needs to know though, are the 6 main, important processes, the ones that stay at the core of the Oracle Database.
These are not optional processes.
These are processes that YOU as a DBA, need to know in depth, recognize, know their purpose and how they work.
With each new database version, Oracle introduced 10+ new background processes. Depending on the options you are running with your database some of these processes are or are not there.
Check out the full list of 12c background processes here. I’ve counted 110+ distinct process names for 12c. It is no wonder DBAs don’t know what SMCO process is.
Today we are going back to the basics of the Oracle database. Because without a good foundation (the basics) how can you build a solid knowledge?
These are the main Oracle background processes, in no particular order, as all of them are equally important:
1.Database Writer Process
DBWn writes the content of the database buffer cache to datafiles. DBW writes cold, dirty buffers from the buffer cache to disk. The purpose of this operation is for a user process to always find free buffers in the buffer cache.
What are cold dirty buffers? These are buffers that were modified at one point, and have not been used for a while.
2.Log Writer Process
LGWR writes the content of the redo log buffer to redo log files.
When does log writer write?
- when a user commits a transaction
- every 3 seconds
- when the redo log buffer is one third full
- before DBW writes modified buffers to disk (write-ahead protocol)
When is it that LGWR cannot write?
- if all the members of a redo log file group are damaged, and LGWR needs to write to them.
- if the redo log file group is unavailable, because it has not been archived.
CKPT updates the datafile headers and the control files with details of the checkpoint information.
What is in a checkpoint information?
It is very well and simply explained by Jonathan Lewis in his book Oracle Core – Essential Internals for DBAs and Developers,
..." a checkpoint used to be a simple moment of synchronization, a moment when Oracle could say "if a data block was changed before this moment in time, that data block, with the change made to it, is now on disk"...
4.System Monitor Process
SMON performs instance recovery during startup if needed. If the instance crashed, or was shutdown abort, SMON is the one that comes to the rescue, it rolls forward the all the transactions from the redo log files, and then rolls back any uncommitted transaction.
SMON also cleans up unused temporary segments.
5.Process Monitor Process
PMON performs recovery if a user process fails. If a user’s session is killed, PMON is the process that will cleanup the buffer cache, releases locks and remove the user process.
SMON and PMON regularly check if they are needed.
DBAs usually check if a database is running on a Unix server, by looking either for pmon or smon process.
ps -ef | grep smon ps -ef | grep pmon
ARC is only present if the database is in archivelog mode and automatic archiving is enabled. This is the case in 99% of the databases. Just don’t look for ARC process, if your database runs in noarchivelog mode.
The purpose of this process is to copy online redo log files to disk (your archive destination), after a log switch occurs.
There are more background processes than the six mentioned above.
10g introduced processes such as: MMAN (Memory Manager, an SGA background process), RVWR (Recovery Writer used by Flashback technology), MMNL(Memory Monitor Light which works with the AWR) and many more. (check out New Background Processes In 10g (Doc ID 268197.1))
11g introduced processes such as: DIAG (diagnosability process), FBDA (flashback data archiver process), SMCO (space management coordinator) and many more (check out New Background Processes In 11g (Doc ID 444149.1))
12c introduced processes such as: OFSD (Oracle File Server Background Process), SAnn (SGA Allocator) , LGnn (Log Writer Worker) and many more (check out New Background Processes In 12c (Doc ID 1625912.1))
If you enjoyed this article, and would like to learn more about databases, please sign up below, and you will receive
The Ultimate 3 Step Guide To Find The Root Cause Of The Slow Running SQL!