Why do shadow processes exist

oracleoracle-11g

Oracle architecture has two types of process: server process or foreground process and background process, but:

Some people use it to refer to foreground processes, others use it
for background processes

This is ambiguous. Please explain to me why do the concept of shadow process exist?

Best Answer

Background processes are processes that are part of the instance. They start when the instance starts, and exit when the instance shuts down. These processes are required for the instance to function or to do the work that would otherwise require starting these processes every time the work needs to be done (which would probably be ineffective). The examples of background processes are job coordinator background process (cjqN) which coordinates job-slave processes running jobs on schedule, and LGWR background process which writes redo entries to the redo log files.

Server processes, on the other hand, are mostly transient: they start when needed, do some work, and exit. Sometimes people refer to server processes as foreground processes, as opposed to background processes. The examples of foreground processes are the server processes that support user sessions, Scheduler job-slave processes (jNNN) which are started by the job coordinator process described earlier, do some work, and eventually exit if there are no other jobs to do.

Server processes are sometimes also referred to as shadow processes, but I would avoid this term, because it seems that it's not commonly used, and may confuse you – I found only 25 occurrences of "shadow process" in Oracle Database 11g Release 2 documentation (one being mentioned in "Shadow Server Architecture" section of Database Concepts), as opposed to 305 occurrences of "server process", and 182 occurrences of "background process".

As far as OCA exam is concerned, I didn't encounter "shadow process" term in any of the questions on the real exam, and this term appeared only twice in the guides I used to prepare for the exam, one of them explicitly stating that its use should be avoided.