19857623 Basic Oracle Architecture
Transcript of 19857623 Basic Oracle Architecture
-
8/2/2019 19857623 Basic Oracle Architecture
1/49
Basic Oracle ArchitectureBasic Oracle Architecture
Presented to HIOUGPresented to HIOUG21-Jun-200521-Jun-2005
By Byron BushBy Byron Bush
-
8/2/2019 19857623 Basic Oracle Architecture
2/49
Workshop ObjectivesWorkshop Objectives
Identify high-level architecturalcomponents of an Oracle Database
Describe the function of each of these
components Identify Oracle Database internal data
structures
Define the mechanisms used whenprocessing Insert/Update/Deletestatements
-
8/2/2019 19857623 Basic Oracle Architecture
3/49
Most people call it a DatabaseMost people call it a Database
Technically an Oracle Database is broken
into two high-level components
INSTANCE Non-persistent, memory-
based processes and structures
DATABASE Persistent, disk-based data
and control files
-
8/2/2019 19857623 Basic Oracle Architecture
4/49
So Why Differentiate?So Why Differentiate?
Most Oracle installations consist of only a
single Instance and single Database
Instance
Database
-
8/2/2019 19857623 Basic Oracle Architecture
5/49
Oracle RAC is DifferentOracle RAC is Different
Oracle Real Application Clusters allow
multiple Instances to interact with a
single Database to provide high
availability
Instance 1
Database
Instance 3Instance 2
-
8/2/2019 19857623 Basic Oracle Architecture
6/49
Instance a Little CloserInstance a Little Closer
An Oracle Instance
Is a means to access an Oracle Database
Always opens one and only one Database
Consists of memory and background process
structures
-
8/2/2019 19857623 Basic Oracle Architecture
7/49
Picture of an InstancePicture of an Instance
Instance
Library
Cache
Data
Dictionary
Cache
Shared PoolSGA
Database Buffer
Cache
Redo Log
Buffer
Java Pool Large Pool
PMON SMON DBWR LGWR CKPT Others
MemoryStructures
Back-Ground
Processes
-
8/2/2019 19857623 Basic Oracle Architecture
8/49
Database a Little CloserDatabase a Little Closer
An Oracle Database
Is a collection of data that is treated as a unit
Consists of three file types
-
8/2/2019 19857623 Basic Oracle Architecture
9/49
Picture of a DatabasePicture of a Database
Archived
Log Files
Parameter
File
Password
File
Oracle Database
Data Files Control Files Redo Log Files
-
8/2/2019 19857623 Basic Oracle Architecture
10/49
Picture of an InstancePicture of an Instance
Instance
Library
Cache
Data
Dictionary
Cache
Shared PoolSGA
Database Buffer
Cache
Redo Log
Buffer
Java Pool Large Pool
PMON SMON DBWR LGWR CKPT Others
MemoryStructures
Back-Ground
Processes
-
8/2/2019 19857623 Basic Oracle Architecture
11/49
Memory StructureMemory Structure
Oracles memory structure consists of two
memory areas known as:
2. System Global Area (SGA): Allocated at
instance start up, and is a fundamental
component of an Oracle Instance
3. Program Global Area (PGA): Allocated
when the server process is started
-
8/2/2019 19857623 Basic Oracle Architecture
12/49
System Global AreaSystem Global Area
The SGA consists of several memory structures:
Shared Pool
Database Buffer Cache
Redo Log Buffer Other structures
There are two additional memory structures that
can be configured within the SGA:
Large Pool
Java Pool
-
8/2/2019 19857623 Basic Oracle Architecture
13/49
System Global AreaSystem Global Area
The size of the SGA is determined by the
parameters that set the sizes of the
various pools; these parameters are
dynamic
The SGA_MAX_SIZE parameter sets the
maximum size of the SGA (so you can
limit it) and is not a dynamic parameter
Thanks Ned!
-
8/2/2019 19857623 Basic Oracle Architecture
14/49
Picture of an InstancePicture of an Instance
Instance
Library
Cache
Data
Dictionary
Cache
Shared PoolSGA
Database Buffer
Cache
Redo Log
Buffer
Java Pool Large Pool
PMON SMON DBWR LGWR CKPT Others
MemoryStructures
Back-Ground
Processes
-
8/2/2019 19857623 Basic Oracle Architecture
15/49
Shared PoolShared Pool
Used to store: Most recently executed SQL statements
Most recently used data definitions
It consists of two key performance-relatedmemory structures: Library Cache
Data Dictionary Cache Sized by the parameter
SHARED_POOL_SIZE
-
8/2/2019 19857623 Basic Oracle Architecture
16/49
Library CacheLibrary Cache
Stores information about the most recently usedSQL and PL/SQL statements
Enables the sharing of commonly used
statements Is managed by a least recently used (LRU)algorithm
Consists of two structures
Shared SQL area Shared PL/SQL area
Size is determined by the Shared Pool sizing
-
8/2/2019 19857623 Basic Oracle Architecture
17/49
Picture of an InstancePicture of an Instance
Instance
Library
Cache
Data
Dictionary
Cache
Shared PoolSGA
Database Buffer
Cache
Redo Log
Buffer
Java Pool Large Pool
PMON SMON DBWR LGWR CKPT Others
MemoryStructures
Back-Ground
Processes
-
8/2/2019 19857623 Basic Oracle Architecture
18/49
Data Dictionary CacheData Dictionary Cache
A collection of the most recently useddefinitions in the database
Includes information about database files,
tables, indexes, columns, users,privileges, and other database objects
During the parse phase, the server
process looks at the data dictionary forinformation to resolve object names andvalidate access
-
8/2/2019 19857623 Basic Oracle Architecture
19/49
Database Buffer CacheDatabase Buffer Cache
Stores copies of data blocks that have
been retrieved from the data files
Enables great performance gains when
you obtain and update data
Managed through an LRU algorithm
DB_BLOCK_SIZE determines primaryblock size
-
8/2/2019 19857623 Basic Oracle Architecture
20/49
Picture of an InstancePicture of an Instance
Instance
Library
Cache
Data
Dictionary
Cache
Shared PoolSGA
Database Buffer
Cache
Redo Log
Buffer
Java Pool Large Pool
PMON SMON DBWR LGWR CKPT Others
MemoryStructures
Back-Ground
Processes
-
8/2/2019 19857623 Basic Oracle Architecture
21/49
-
8/2/2019 19857623 Basic Oracle Architecture
22/49
Large PoolLarge Pool
An optional area of memory in the SGA
Relieves the burden place on the Shared Pool
Used for:
Session memory for the Shared Server
I/O server processes
Backup and restore operations for RMAN
Does not use an LRU list Sized by LARGE_POOL_SIZE
Can be dynamically resized
-
8/2/2019 19857623 Basic Oracle Architecture
23/49
Java PoolJava Pool
Services parsing requirements for Java
commands
Required if installing and using Java
Sized by JAVA_POOL_SIZE parameter
-
8/2/2019 19857623 Basic Oracle Architecture
24/49
Oracle Process StructureOracle Process Structure
Oracle takes advantage of various types
of Processes:
User Process: Started at the time a database
user requests connection to the Oracle Server
Server Process: Connects to the Oracle
instance and is started when a user
establishes a session Background Processes: Started when an
Oracle instance is started
-
8/2/2019 19857623 Basic Oracle Architecture
25/49
User ProcessUser Process
A program that requests interaction with the
Oracle server
Must first establish a connection
Does not interact directly with the Oracle server
Server
Process
User
ProcessConnection
Established
-
8/2/2019 19857623 Basic Oracle Architecture
26/49
Server ProcessServer Process
A program that directly interacts with the
Oracle server
Fulfills calls generated and returns results
Can be dedicated or shared server
-
8/2/2019 19857623 Basic Oracle Architecture
27/49
Picture of an InstancePicture of an Instance
Instance
Library
Cache
Data
Dictionary
Cache
Shared PoolSGA
Database Buffer
Cache
Redo Log
Buffer
Java Pool Large Pool
PMON SMON DBWR LGWR CKPT Others
MemoryStructures
Back-Ground
Processes
-
8/2/2019 19857623 Basic Oracle Architecture
28/49
Background ProcessesBackground Processes
Maintains and enforces relationshipsbetween physical and memory structures Mandatory background processes:
DBWn PMON CKPTLGWR SMON
Optional background processes:ARCn LMDn QMNn
CJQ0 LMON RECODnnn LMS Snnn
LCKn Pnnn
-
8/2/2019 19857623 Basic Oracle Architecture
29/49
Database Writer (DBWn)Database Writer (DBWn)
DBWn writes when: Checkpoint occurs
Dirty buffers reach
threshold
There are no free
buffers Timeout occurs
Tablespace OFFLINE
Tablespace READ
ONLY
Table DROP or
TRUNCATE
Tablespace BEGIN
BACKUP
Oracle
DatabaseData Files Control Files Redo Log Files
Instance
Shared Pool
Library
Cache
Data
Dictionary
Cache
SGA
Database Buffer
Cache
Redo Log
Buffer
Java Pool Large Pool
PMON SMON DBWR LGWR CKPT Others
Shared Pool
-
8/2/2019 19857623 Basic Oracle Architecture
30/49
Log Writer (LGWR)Log Writer (LGWR)
LGWR writes: At commit
When one-third full
When there is 1 MB of
redo
Every three seconds Before DBWn writes
Instance
Shared Pool
Library
Cache
Data
Dictionary
Cache
SGA
Database Buffer
Cache
Redo Log
Buffer
Java Pool Large Pool
PMON SMON DBWR LGWR CKPT Others
Oracle
DatabaseData Files Control Files Redo Log Files
-
8/2/2019 19857623 Basic Oracle Architecture
31/49
System Monitor (SMON)System Monitor (SMON)
Responsibilities: Instance recovery
Rolls forward
changes in online
redo log files
Opens database for
user access Rolls back
uncommitted
transactions
Coalesces free space
Deallocates temporary
segments
Oracle
DatabaseData Files Control Files Redo Log Files
Instance
Shared Pool
Library
Cache
Data
Dictionary
Cache
SGA
Database Buffer
Cache
Redo Log
Buffer
Java Pool Large Pool
PMON SMON DBWR LGWR CKPT Others
Shared Pool
-
8/2/2019 19857623 Basic Oracle Architecture
32/49
Process Monitor (PMON)Process Monitor (PMON)
Cleans up after failedprocesses by:
Rolling back the
transaction
Releasing locks
Releasing otherresources
Restarting dead
dispactchers
Database Buffer
Cache
Oracle
DatabaseData Files Control Files Redo Log Files
Instance
Shared Pool
Library
Cache
Data
Dictionary
Cache
SGA
Redo Log
Buffer
Java Pool Large Pool
PMON SMON DBWR LGWR CKPT Others
Shared Pool
-
8/2/2019 19857623 Basic Oracle Architecture
33/49
Checkpoint (CKPT)Checkpoint (CKPT)
Responsible for: Signaling DBWn at
checkpoints
Updating datafile
headers with
checkpoint information
Updating control files
with checkpoint
information
Instance
Shared Pool
Library
Cache
Data
Dictionary
Cache
SGA
Database Buffer
Cache
Redo Log
Buffer
Java Pool Large Pool
PMON SMON DBWR LGWR CKPT Others
Oracle
DatabaseData Files Control Files Redo Log Files
Shared Pool
-
8/2/2019 19857623 Basic Oracle Architecture
34/49
Archiver (ARCn)Archiver (ARCn)
Optional background process Automatically archives online redo log files when
ARCHIVELOG mode is set Preserves the record of all changes made to the
databaseOracle
DatabaseData Files Control Files Redo Log Files Archived Logs
ARCn
-
8/2/2019 19857623 Basic Oracle Architecture
35/49
Oracle Data StorageOracle Data Storage
Oracle keeps all system and user data in
two basic storage containers:
Tablespace a logical entity known
only to Oracle
Data Files physical files that may
(typically) be seen from the operating
system
-
8/2/2019 19857623 Basic Oracle Architecture
36/49
TablespacesTablespaces
Can belong to only one database at a time
Consist of one or more data files
Are further divided into logical units ofstore
-
8/2/2019 19857623 Basic Oracle Architecture
37/49
Data FilesData Files
Can belong to only one tablespace and
one database
Are a repository for schema object data
DataFile DataFile
Database
Tablespace
-
8/2/2019 19857623 Basic Oracle Architecture
38/49
2 Types of Tablespace2 Types of Tablespace
1. Tablespaces required by Oracle for
normal operations
2. Tablespaces that contain data and
indexes that support your applications
-
8/2/2019 19857623 Basic Oracle Architecture
39/49
Required TablespacesRequired Tablespaces
System Contains the Oracle Data
Dictionary
Sysaux - New to 10g; supports historic
monitoring / tuning
Temporary Used for disk-based sorting
of data (select...fromorder by)
Undo Used for transaction consistency
during Insert / Update / Delete statements
-
8/2/2019 19857623 Basic Oracle Architecture
40/49
SQL Statements (IUDS)SQL Statements (IUDS)
Insert
Update
Delete Select
What happens when
someone connects to
the database and
issues one of thesestatements?
-
8/2/2019 19857623 Basic Oracle Architecture
41/49
Connect to Oracle What HappensConnect to Oracle What Happens
Server
Process
User
ProcessConnect User/Pwd
Are User definition and privileges in SGADictionary Cache? If not, try to fetch from the System
tablespace
If there, validate Pwd and privileges to loginAllow connection if all is right; otherwise
decline connection
-
8/2/2019 19857623 Basic Oracle Architecture
42/49
Select What Happens First?Select What Happens First?
Is this statement in the Library Cache?
If statement cached then it has been recently
been parsed and executed
If not cached then parse the statement
If cached then skip parsing stage and executestatement
Select *
From MyTabOrder by 1;
-
8/2/2019 19857623 Basic Oracle Architecture
43/49
Select Parsing the StatementSelect Parsing the Statement
Does MyTab exist?
Does user have Privs to select from
MyTab
What columns are in MyTab
What is the first column in MyTab
Select *
From MyTabOrder by 1;
-
8/2/2019 19857623 Basic Oracle Architecture
44/49
Select Executing the StatementSelect Executing the Statement
Is MyTab data in the SGA Buffer Cache?
If not, fetch data into Buffer Cache
Sort data in MyTab by the first column
If can sort records in memory then do so
If cannot sort in memory then use Temporarytablespace as disk-based staging area
Return records to client process
Select *
From MyTabOrder by 1;
-
8/2/2019 19857623 Basic Oracle Architecture
45/49
I/U/D What Happens First?I/U/D What Happens First?
Is this statement in the Library Cache?
If statement cached then it has been recently
been parsed and executed
If not cached then parse the statement
If cached then skip parsing stage and executestatement
Insert (a,b,c)
Into MyTab;
-
8/2/2019 19857623 Basic Oracle Architecture
46/49
I/U/D Executing the StatementI/U/D Executing the Statement
Validate values to be inserted
Execute the statement Keep DB version of the record in Undo
tablespace until Commit or Rollback
Record changes in SGA Redo Log Buffer Change records in SGA Buffer Cache
DBWn writes changed records to data file(s)as part of buffer cache management
Insert (a,b,c)
Into MyTab;
-
8/2/2019 19857623 Basic Oracle Architecture
47/49
I/U/D Executing the StatementI/U/D Executing the Statement
If Commit then
LGWn writes Redo Log Buffer entries to
Redo Logs
Undo entries are invalidated
If Rollback then Migrate DB version of record in Undo back to
tablespace/data file
Insert (a,b,c)
Into MyTab;
Commit;
or
Rollback;
-
8/2/2019 19857623 Basic Oracle Architecture
48/49
Archivelog ModeArchivelog Mode
Oracle
DatabaseData Files Control Files Redo Log Files Archived Logs
ARCn
If Instance in Archivelog mode Redo LogFiles are Archived to Archive Logs;
which may be used to recover your
database in the case of disaster
-
8/2/2019 19857623 Basic Oracle Architecture
49/49
SummarySummary What we called a Database is really an
Instance and a Database. An Oracle Instance is not persistent. It consists
of the System Global Area (SGA) and acollection of processes.
An Oracle Database is persistent. It consists ofa collection of Required and Usertablespaces (with corresponding data files)along with other supporting files.
Nearly every component of the Instance andDatabase are mobilized to execute SQLstatements.