[ Pobierz całość w formacie PDF ]
.Additional Information: On many operating systems, background processesare created automatically when an instance is started.On other operatingsystems, the server processes are created as a part of the Oracle installation.See your Oracle operating system-specific documentation for details on howthese processes are created.An Oracle instance may have many background processes; not all are alwayspresent.The background processes in an Oracle instance include thefollowing:" Database Writer (DBWR)" Log Writer (LGWR)" Checkpoint (CKPT)" System Monitor (SMON)" Process Monitor (PMON)" Archiver (ARCH)" Recoverer (RECO)" Lock (LCKn)" Snapshot Refresh (SNPn)" Dispatcher (Dnnn)" Server (Snnn)Figure 5-4 illustrates each background process s interaction with the differentparts of an Oracle database, and the following sections describe each process.The Parallel Server is not illustrated; see Oracle8 Parallel Server Concepts &Administration.5-6 Oracle8 Server ConceptsFigure 5-4: The Background Processes of a Multiple-Process Oracle InstanceLCKn RECO PMON SMONSystem Global AreaDatabaseRedo LogBuffer CacheBufferUserShared DedicatedProcessServer ServerProcess ProcessUser ProcessesOfflineCKPT ARCHStorageD000DeviceDBWR LGWRUserProcessControlFilesRedo LogFilesLegend: DatabaseFilesLCKn Lock processRECO Recoverer processPMON Process monitorSMON System monitorCKPT CheckpointARCH ArchiverDBWR Database writerLGWR Log writerMemory Structures and Processes 5-7Database Writer (DBWR)Database Writer process (DBWR) writes buffers to datafiles.DBWR is an Oraclebackground process responsible for buffer cache management.For moreinformation about the database buffer cache, see The Database Buffer Cacheon page 5-17.When a buffer in the buffer cache is modified, it is marked dirty.Theprimary job of the DBWR process is to keep the buffer cache clean by writingdirty buffers to disk.As buffers are dirtied by user processes, the number offree buffers diminishes.If the number of free buffers drops too low, userprocesses that must read blocks from disk into the cache are not able to findfree buffers.DBWR manages the buffer cache so that user processes canalways find free buffers.The DBWR process writes the least recently used (LRU) buffers to disk.Bymanaging buffers in an LRU manner, DBWR improves the performance offinding free buffers while keeping recently used buffers resident in memory.For example, blocks that are part of frequently accessed small tables or indexesare kept in the cache so that they do not need to be read in again from disk.TheLRU scheme causes more frequently accessed blocks to stay in the buffer cacheso that when a buffer is written to disk, it is unlikely to contain data that maybe useful soon.The buffer cache has multiple LRU latches.Latches are automatic internallocks that protect shared data structures.The initialization parameterDB_BLOCK_LRU_LATCHES controls how many latches are configured andby default is set to the number of CPUs on your system.This is usually a goodvalue to reduce latch contention for the DBWR processes, thus improvingperformance.See Oracle8 Server Tuning for more information.The DBWR process writes dirty buffers to disk under the following conditions:" When a server process cannot find a clean reusable buffer after scanninga threshold number of buffers, it signals DBWR to write." When a DBWR time-out occurs (every three seconds), DBWR may writeout buffers." When a checkpoint occurs, the Log Writer process (LGWR) signalsDBWR.DBWR writes the dirty buffers to disk with a single multiblock write.Thenumber of blocks written in a multiblock write varies by operating system.5-8 Oracle8 Server ConceptsA time-out occurs if DBWR is inactive for three seconds.In this case, DBWRsearches a specified number of buffers on the LRU list and writes any dirtybuffers that it finds to disk.Whenever a time-out occurs, DBWR searches anew set of buffers.If the database is idle, DBWR eventually writes the entirebuffer cache to disk.When a checkpoint occurs, DBWR writes the appropriate buffers to disk.In all cases, DBWR always performs batched (multiblock) writes to improveefficiency.Additional Information: On some platforms, an instance can have multipleDBWRs.In such a case, if one DBWR blocks during a write to one disk, theothers can continue writing to other disks.The parameter DB_WRITERScontrols the number of DBWR processes.See your Oracle operating system-specific documentation for information about DBWR on your platform.For more information about DBWR and how to monitor and tune theperformance of DBWR, see the Oracle8 Server Administrator s Guide and Oracle8Server Tuning.Log Writer Process (LGWR)The Log Writer process (LGWR) writes the redo log buffer to a redo log file ondisk
[ Pobierz całość w formacie PDF ]