Monday, February 16, 2009

Oracle Background Processes

Hi folks, actually i was bit busy since last couple of days, so was unable to post on blog.

As post name suggest, we are going to discuss background process that drives oracle for its optimum performance. As the name suggest, these are processes which runs behind the scene, but are the main operating part of oracle database.

Let's have look at them in detail.

As we have discuss, when instance is allocated at RAM (physical memory) means SGA is created. This SGA has some memory structures and background processes. Although memory processes and background processes are interdependent, they holds their own importance too. Some of important background processes and their functions are described in this post.

First we will discuss all the basic BG processes, which are known and most important.

1. PMON:

The process monitor recovers failed process resources. It checks if any user process fails, it cleans up all resources that user process has acquired,and roll back uncommitted transaction and releasing locks. In shared server environment, PMON restarts any failed dispatcher or server process.

2. SMON:

The system monitor recovers after instance crash. It performs crash recovery when crashed instance is start again. It monitors and clean temporary extents. It also merges contiguous areas of free space in datafile, this process is called as coalescing. In RAC in non-failed instance, SMON performs instance recovery of other failed instance.

3. DBWR:

The database writer process writes dirty blocks from database buffer cache to datafiles. Dirty blocks are those blocks which are modified by server process, and need to be flushed out to make room for new blocks in cache.DBWR never ever modify database buffer cache, it is done by server process. DBWR writes to datafiles when space is needed in cache, on commit and when forceful checkpoint is occurred. You can configure more than one DBWR process up to 10.

4. LGWR:

The log writer process writes redo log buffer entries (redo entries) into online redo log files on disk. This is done by LGWR when transaction is committed, every 3 seconds and when DBWR signals LGWR to do so.

5. CKPT:

The checkpoint process regularly initiates a checkpoint, and updates controlfile and datafile header. This process flushes the redo entries by means of LGWR. Uses DBWR to write all dirty buffer to datafiles and updates datafile header.

6. ARCH:

The archive process is optional process. If your database is in archive log mode and automating archiving is enabled, then this process is active. This process writes filled redo log files to archive log location specified by you. It is required while recovering database. LGWR is responsible for starting multiple ARCH process if workload increase. There can be up to 10 archiver processes.

7. MMAN:

The MMAN dynamically adjust the size of SGA components. It is new process added to oracle 10g a a part of "Automatic Shared Memory Management".

These are the basic background processes in oracle SGA. Other than this some background processes are:-

CQJ0,FMON,Pnnn etc.

We will see them in detail later.


4 comments:

  1. Hi Vikrant,

    I've read from all your explanation about Oracle and easy to understand... thank's a lot

    ReplyDelete
  2. I have heard about another way of mssql database recovery. Besides, you can visit my blogs at: http://daspeac.livejournal.com/ or http://daspeac.blogspot.com/ where I’m trying to share my experience with regard to data corruption issues.

    ReplyDelete
  3. hi vikrant,

    can you give detailed explaination of ckpt.

    lilly

    ps: your blogs have proved useful

    ReplyDelete
  4. Its my pleasure that I got of chance of knowing oracle background process. I was unaware of this processing and able to only because of you. Thanks!

    ReplyDelete