RelationalDBDesign RelationalDBDesign

Instance Architecture   «Prev  Next»
Lesson 4 Asynchronous Process Coordination
Objective Explain how background processes run asynchronously.

Asynchronous Process Coordination

Asynchronous processes run independently

The Oracle background processes all run asynchronously. Each process executes as independently as possible. For example, at the same time that the log writer is busy writing records to the redo log files, the database writer is busy writing changed buffers to disk, and the archiver is copying full redo log files to the archive log destination. Occasionally, one process does need to wait for another, but that is not usually the case. The Database Writer (DBW0), for example, will not write a modified buffer back to a datafile until the Log Writer (LGWR) process has logged all the changes for that buffer.

Advantages of asynchronous processes

This asynchronous behavior is part of what makes Oracle perform so well. A program can issue a query that changes a buffer without having to wait for that change to be written to disk. If the database is busy, the Database Writer doesn't need to write anything as long as enough space remains in the database buffer cache to hold the new data being read. The Log Writer process focuses only on writing the redo log files, and hopefully never needs to wait on the archiver to copy them.
Figure 4-4 illustrates how each background process interacts with the different parts of an Oracle database.

Figure 4-4 Background Processes of a Multiple Process Oracle Instance

Oracle Background Processes

An Oracle database uses memory structures and processes to manage and access the database. All memory structures exist in the main memory of the computers that constitute the database system. Processes are jobs that work in the memory of these computers. The architectural features discussed in this section enable the Oracle database to support:
  1. Many users concurrently accessing a single database
  2. The high performance required by concurrent multiuser, multiapplication database systems
Oracle creates a set of background processes for each instance. The background processes consolidate functions that would otherwise be handled by multiple Oracle programs running for each user process. They asynchronously perform I/O and monitor other Oracle process to provide increased parallelism for better performance and reliability.

Mandatory Background Processes

The mandatory background processes are present in all typical database configurations. These processes run by default in a database instance started with a minimally configured initialization parameter file. These are some of the mandatory background processes:
  1. Process Monitor Process (PMON)
  2. System Monitor Process (SMON)
  3. Database Writer Process (DBWn)
  4. Log Writer Process (LGWR)
  5. Checkpoint Process (CKPT)
  6. Manageability Monitor Processes (MMON and MMNL)
  7. Recoverer Process (RECO)