Oracle Instance Architecture

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 37

Oracle Instance Architecture

CIS417
Oracle
Architecture

Overview
Oracle Architecture
The Oracle Server

O rac le ser ver


Oracle Architecture
Instance Architecture

Instance
SGA
Shared pool

Library
Cache

Database Redo
Buffer Log Data
Cache Buffer Dictionary
Cache

DBWR LGWR SMO N PMON ARCn

RECO CKPT LCKn SNPn Dnnn

Snnn
Oracle Architecture
Instance

 An Oracle instance:
– Is a means to access an Oracle database
– Always opens one and only one database
 Consists of:
– Internal memory structures
– Processes
Oracle Architecture
Interaction with the Database ( Dedicated Server )

CKPT SMON PMON

SGA
Shared SQL Redo log Buffer
Pool Database Buffer Cache

Request Response

DBW R LGW R ARCn


Dedicated
Server

User
Process

Database Files Redo Log Files


Oracle Architecture
Interaction with the Database ( Shared Server )

CKPT SMON PMON

SGA
Shared SQL
Redo log Buffer
Pool Database Buffer Cache

Request Response

Dedicated
Dedicated
Server
Shared
Server DBWR LGWR ARCn
Servers

Dispatcher

User
User
Process
User
Process
User
Process
User
Process
Process Redo Log Files
Database Files
Oracle Architecture
Internal Memory Structures SGA

System or ‘shared’ Global Area (SGA)


– Database buffer cache
– Redo log buffer
– Shared pool
– Request & response queues (shared server)
Oracle Architecture
Database buffer cache

 Used to hold data blocks read from datafiles by server


processes
 Contains ‘dirty’ or modified blocks and ‘clean’ or
unused or unchanged bocks
 ‘Dirty’ and ‘clean’ blocks are managed in lists called the
dirty list and the LRU
 Free space is created by DBWR writing out ‘dirty’
blocks or aging out blocks from the LRU
 Size is managed by the parameter
DB_BLOCK_BUFFERS
Oracle Architecture
Least Recently Used (LRU)

 LRU and the database buffer cache


– Every time a data block is read from disk it is placed
in the database buffer cache at the head of the LRU
list
– If a block is already in the cache and it is read again
it is moved to the head of the list
– Data not used frequently is ‘aged’ out of the cache
while frequently used data remains
Oracle Architecture
Redo Log Buffer

A circular buffer that contains redo entries


– Redo entries reflect changes made to the database
 Redo entries take up contiguous, sequential
space in the buffer
 Data stored in the redo log buffer is periodically
written to the online redo log files
 Size is managed by the parameter
LOG_BUFFER
– Default is 4 times the maximum data block size for
the operating system
Oracle Architecture
Shared Pool

 Consists of multiple smaller memory areas


– Library cache
 Shared SQL area
– Contains parsed SQL and execution plans for statements already run
against the database
 Procedure and package storage
– Dictionary cache
 Names of all tables and views in the database
 Names and datatypes of columns in the database tables
 Privileges of all users

 Managed via an LRU algorithm


 Size determined by the parameter SHARED_POOL_SIZE
Oracle Architecture
Least Recently Used (LRU)

 LRU and the shared pool


– Every time a SQL statement is parsed it is placed in
the shared pool for reuse
– If a SQL statement is already in the shared pool it
will not re-parse but it is placed at the head of the
LRU
– SQL statements not used frequently are ‘aged’ out
of the shared pool while frequently used statements
remain
– A SQL statement may be artificially retained at the
head of the LRU by ‘pinning’ the statement
Oracle Architecture
Internal Memory Structures PGA

Program or ‘process’ Global Area (PGA)


– Used for a single process
– Not shareable with other processes
– Writable only by the server process
– Allocated when a process is created and
deallocated when a process is terminated
– Contains:
 Sortarea – Used for any sorts required by SQL processing
 Session information – Includes user privileges
 Cursor state – Indicates stage of SQL processing
 Stack space – Contains session variables
Oracle Architecture
Background Processes - DBWR

 Writes contents of database buffers to datafiles


 Primary job is to keep the database buffer
‘clean’
 Writes least recently used (LRU) ‘dirty’ buffers
to disk first
 Writes to datafiles in optimal batch writes
 Only process that writes directly to datafiles
 Mandatory process
Oracle Architecture
Background Processes - DBWR

 DBWR writes to disk when:


– A server process cannot find a clean reusable buffer
– A timeout occurs (3 sec)
– A checkpoint occurs
– DBWR cannot write out ‘dirty’ buffers before they
have been written to the online redo log files
Oracle Architecture
Commit Command

The SQL command COMMIT allows users to


save transactions that have been made against
a database. This functionality is available for
any UPDATE, INSERT, or DELETE
transaction; it is not available for changes to
database objects (such as ALTER TABLE
commands)
Oracle Architecture
Background Processes - LGWR

 Writes contents of redo log buffers to online


redo log files
 Primary job is to keep the redo log buffer
‘clean’
 Writes out redo log buffer blocks sequentially
to the redo log files
 May write multiple redo entries per write during
high utilization periods
 Mandatory process
Oracle Architecture
Background Processes - LGWR

 LGWR writes to disk when:


– A transaction is COMMITED
– A timeout occurs (3 sec)
– The redo log buffer is 1/3 full
– There is more than 1 megabyte of redo entries
– Before DBWR writes out ‘dirty’ blocks to datafiles
Oracle Architecture
Background Processes - SMON

 Performs automatic instance recovery


 Reclaims space used by temporary segments
no longer in use
 Merges contiguous areas of free space in the
datafiles (if PCTINCREASE > 0)
 SMON ‘wakes up’ regularly to check whether it
is needed or it may be called directly
 Mandatory process
Oracle Architecture
Background Processes - SMON

 SMON recovers transactions marked as DEAD


within the instance during instance recovery
– All non committed work will be rolled back by SMON
in the event of server failure
– SMON makes multiple passes through DEAD
transactions and only applies a specified number of
undo records per pass, this prevents short
transactions having to wait for long transactions to
recover
 SMON primarily cleans up server-side failures
Oracle Architecture
Background Processes - PMON

 Performs automatic process recovery


– Cleans up abnormally terminated connections
– Rolls back non committed transactions
– Releases resources held by abnormally terminated
transactions
 Restartsfailed shared server and dispatcher
processes
 PMON ‘wakes up’ regularly to check whether it is
needed or it may be called directly
 Mandatory process
Oracle Architecture
Background Processes - PMON

 Detectsboth user and server aborted database


processes
 Automatically resolves aborted processes
– PMON rolls back the current transaction of the
aborted process
– Releases resources used by the process
– If the process is a background process the instance
most likely cannot continue and will be shut down
 PMON primarily cleans up client-side failures
Oracle Architecture
Background Processes - CKPT

 Forces all modified data in the SGA to be written to


datafile
– Occurs whether or not the data has been committed
– CKPT does not actually write out buffer data only DBWR can
write to the datafiles
 Updates the datafile headers
– This ensures all datafiles are synchronized
 Helps reduce the amount of time needed to perform
instance recovery
 Frequency can be adjusted with parameters
Oracle Architecture
Background Processes - ARCH

 Automaticallycopies online redo log files to


designated storage once they have become full
Oracle Architecture
Server Processes

 Services a single user process in the dedicated


server configuration or many user processes in
the shared server configuration
 Use an exclusive PGA
 Include the Oracle Program Interface (OPI)
 Process calls generated by the client
 Return results to the client in the dedicated
server configuration or to the dispatcher in the
shared server configuration
Oracle Architecture
User Processes

 Run on the client machine


 Are spawned when a tool or an application is
invoked
– SQL*Plus, Server Manager, Oracle Enterprise
Manager, Developer/2000
– Custom applications
 Includethe User Program Interface (UPI)
 Generate calls to the Oracle server
Oracle Architecture
Transaction Example - Update

CKPT SMON PMON

Rollback SGA
Segment
Redo
Database Log
Shared Pool Buffer
Buffer
Cache

Dedicated
DBWR LGWR
Server
UPDATE table
SET user = ‘SHIPERT’ 1
WHERE id = 12345
User
Process

Database Files Redo Log Files


Oracle Architecture
Transaction Example - Update

CKPT SMON PMON

Rollback SGA
Segment
Redo
Database Log
Shared Pool Buffer
Buffer
Cache

Dedicated 3
DBWR LGWR
Server

User
Process

Database Files Redo Log Files


Oracle Architecture
Transaction Example - Update

CKPT SMON PMON

Rollback SGA
Segment
Redo
Database Log
Shared Pool Buffer
Buffer
Cache

Dedicated
DBWR LGWR
Server

User
Process

Database Files Redo Log Files


Oracle Architecture
Transaction Example - Update

CKPT SMON PMON

Rollback SGA
Segment
Redo
Database Log
Shared Pool Buffer
Buffer
Cache
5

Dedicated
DBWR LGWR
Server

User
Process

Database Files Redo Log Files


Oracle Architecture
Transaction Example - Update

CKPT SMON PMON

Rollback SGA
Segment
Redo
Database Log
Shared Pool Buffer
6 Buffer
Cache

Dedicated
DBWR LGWR
Server

User
Process

Database Files Redo Log Files


Oracle Architecture
Transaction Example - Update

CKPT SMON PMON

Rollback SGA 7
Segment
Redo
Database Log
Shared Pool Buffer
Buffer
Cache

Dedicated
DBWR LGWR
Server

User
Process

Database Files Redo Log Files


Oracle Architecture
Transaction Example - Update

CKPT SMON PMON

Rollback SGA
Segment
Redo
Database Log
Shared Pool Buffer
Buffer
Cache

Dedicated
DBWR LGWR
Server

1 ROW UPDATED 8

User
Process

Database Files Redo Log Files


Oracle Architecture
Transaction Example - Update

CKPT SMON PMON

Rollback SGA
Segment
Redo
Database Log
Shared Pool Buffer
Buffer
Cache

Dedicated
DBWR LGWR
Server

COMMIT 9 10

User
Process

Database Files Redo Log Files


Oracle Architecture
Transaction Example - Update

CKPT SMON PMON

Rollback SGA
Segment
Redo
Database Log
Shared Pool Buffer
Buffer
Cache

Dedicated
DBWR LGWR
Server

COMMIT 11
SUCCESSFUL
User
Process

Database Files Redo Log Files


Oracle Architecture
Transaction Example - Update

CKPT SMON PMON

Rollback SGA
Segment
Redo
Database Log
Shared Pool Buffer
Buffer
Cache

DBWR LGWR
12

Database Files Redo Log Files

You might also like