Monday, November 1, 2010

Oracle Background Processes!!

Oracle Background Processes can be seen from the view V$SESSION.
I find the below query very informative:

Select SERVER,PROCESS,PROGRAM,STATUS
from v$session
where type ='BACKGROUND';

Listing some of the most important Oracle background processes:

ARCH -Archive process writes filled redo logs to the archive log location(s).
In RAC, the various ARCH processes are utilized to ensure that copies of the archived redo logs for each instance
are available to the other instances in the RAC in case required for recovery.
CJQ - Job Queue Process is Used for the job scheduler.
The job scheduler a coordinator and slave programs that the coordinator executes.
The parameter job_queue_processes controls how many parallel job scheduler jobs can be executed at one time.
CKPT - Checkpoint process writes checkpoint information to control files and data file headers.
CQJ0 - Job queue controller process wakes up periodically  to check the job log for any job's due and accordingly spawns Jnnnn processes to handle jobs.
DBWR - Database Writer or Dirty Buffer Writer process is responsible for writing dirty buffers from the database block cache
to the database data files. Generally, DBWR only writes blocks back to the data files on commit, or when the cache is full and space has to be made for more blocks.  In RAC multiple DBWR processes must be coordinated through the locking and global cache processes to ensure efficient processing.
FMON -  Is a process which spawns external non-Oracle Database process to have the database communicates with the mapping libraries provided by storage vendors. FMON is responsible for managing the mapping information.
The initialization parameter FILE_MAPPING is used for mapping the data files to physical devices on a storage subsystem and would spawn the FMON process.
LGWR - Log Writer process is responsible for writing the log buffers out to the redo logs. Each RAC instance would have its own LGWR process maintaining that instance’s thread of redo logs.
LMON - is the Lock Manager process
MMON - In Oracle 10g MMON is the background process responsible for collecting the statistics for the Automatic Workload Repository.
MMNL - This process performs frequent and lightweight manageability-related tasks, such as session history capture and metrics computation.
MMAN - is used for internal database tasks that manage the automatic shared memory. MMAN serves as the SGA Memory Broker and coordinates the sizing of the memory components.
PMON - is background process responsible for recovering the failed process resources. In a Shared Server Architecture, PMON monitors and restarts any failed dispatcher or server processes. In RAC, PMON also holds the role as service registration agent.
Pnnn - This is an optional process which is used in parallel query operations. Parallel Query Slaves are started and stopped as needed.
RBAL - This process coordinates rebalance activity for disk groups in an Automatic Storage Management instance.
SMON - System Monitor process recovers after instance failure and monitors temporary segments and extents.
In RAC,this process would in a non-failed instance, perform failed instance recovery for other failed RAC instances.
WMON - The "wakeup" monitor process

The following background processes are basically Data Guard/Streams/replication Background processes.

DMON - The Data Guard Broker process.
SNP - The snapshot process.
MRP - is Managed recovery process, which in Data Guard would apply the archived redo log to the standby database.
ORBn - performs the actual rebalance data extent movements in an Automatic Storage Management instance. Multiple number of these can be spawned at a time called ORB0, ORB1...
OSMB - is present in a database instance using an Automatic Storage Management disk group. It communicates with the Automatic Storage Management instance.
RFS -  is Remote File Server process - In Data Guard, this process ( running on the standby database ) would be receiving the archived redo logs from the primary database.
QMN - Queue Monitor Process (QMNn) - Used to manage Oracle Streams Advanced Queuing.

No comments:

Post a Comment