0% found this document useful (0 votes)
125 views

Oracle Database Administration I Oracle Server Architecture

The document provides an overview of the Oracle database server architecture. It describes the key components of an Oracle instance including the System Global Area (SGA) which contains structures like the buffer cache, shared pool, and redo log buffer. It also discusses the Program Global Area (PGA) and required background processes like the database writer (DBWn) and log writer (LGWR) that perform important maintenance tasks.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
125 views

Oracle Database Administration I Oracle Server Architecture

The document provides an overview of the Oracle database server architecture. It describes the key components of an Oracle instance including the System Global Area (SGA) which contains structures like the buffer cache, shared pool, and redo log buffer. It also discusses the Program Global Area (PGA) and required background processes like the database writer (DBWn) and log writer (LGWR) that perform important maintenance tasks.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 54

Oracle Database Administration

I Oracle Server Architecture


Overview
 Set of data to store and access information
Based on a relational model of rows and
columns stored in tables Also Object-oriented
(OO) structures

 Contains these components:


 Physical
 Memory
 Process
Oracle's Overall Role

 Retrieve data
 File I/O
 Space Management
 Change Management
 Access Management
Database Structure
 Data file(s)
 Control file(s)
 Redo logs
 Init.ora (spfile.ora - 9i)
 Trace
 Alert log
 Password
Instance Structure
 Memory structures are allocated
 Collectively known as System Global Area.
95% defined by data block buffer cache,
Shared SQL Pool, Large Pool and Java Pool.
 Oracle background processes are started.
 Single database accessible by multiple
instances - RAC (Real Application Cluster)
a.k.a. parallel server
Instance Defined
 Defined by initialization parameter(s)
that determine the size and composition
 Can be dynamically altered
 initSID.ora (ascii file)
 spfileSID.ora (binary file)
 configSID.ora (usually only used to
create a database – not widely used)
Oracle Instance
 Composed of:
 SGA (System Global Area)
 PGA (Program Global Area)
 Oracle BACKGROUND processes
System Global Area (SGA)
 Shared memory region allocated by
Oracle for an Oracle database
 Allocated when the Oracle database is
started
 The SGA should be in non-paged, non-
swapped memory
SGA Composition
 Buffer cache
 Shared SQL Pool
 Large pool (optional)
 Java pool
 Redo log buffer
 Dictionary cache
 Other miscellaneous items
PGA Composition
 Non-shared memory area to which a
process (server or background) can write
 Allocated by Oracle when a user
connects to an Oracle database and a
session is created
Oracle Instance
 Required Background Processes:
 DBWn
 LGWR
 SMON
 PMON
 CKPT (9i)
Oracle Instance
 Optional Background Processes:
(not all inclusive)

 ARCn
 CKPT (prior to 9i)
 RECO
 Lock (LCK0)
 Job Queue (SNPn)
 Queue Monitor (QMNn)
 Dispatcher (Dnnn)
 Server (Snnn – for dedicated MTS servers)
Oracle Instance
More Details
SGA
 Buffer Cache
 Redo Log BUFFER
 Shared SQL Pool
 Dynamic (as of Oracle 9i)
Dynamic SGA
 Defined in Granules
SGA < 128mb 4mb size
SGA > 128mb 16mb size
 Can be modified on the fly (9i)
 Establish an overall maximum
 Initially allocated – 4 for small, 3 for
large (fixed SGA, buffer cache, Shared
pool)
Data Buffer Cache Structure
 Can be defined in two ways:
* By block db_block_buffers
** By byte db_cache_size

 Was divided into blocks the same size as the blocks in


the data files
 As of 9i, multiple buffer cache introduced (depends on
block size of each tablespace)
 Size and number defined in the initialization Parameter
File
 Holds copies of data blocks read from disk
Data Buffer Cache Contents
 Stores the most recently accessed BLOCKS
OF DATA
 Contains PINNED buffers
* Data being accessed
 Contains DIRTY buffers
* Data that has been MODIFIED, but not
written to disk
 FREE buffers
 Two lists, write and LRU
REDO Log Buffers
 Stores the REDO ENTRIES (changes to the
database)

 Default is four times the OS block size

 Larger reduces log I/O and uncommented redo


to online redo logs

 Changed data is moved from the database


buffer cache to the redo log buffer then to the
redo log files
Shared Pool
 Can be dynamically modified (9i)
 Must be an integer multiple of the granule size
* Oracle will round up if not
 Managed by LRU algorithm
 Contains:
* Library Cache
* Data Dictionary Cache
* Control structures
* Reusable Runtime Memory
Shared Pool
Shared Pool
 Library Cache

* SHARED by all users for commonly


used SQL statements

* Shared and Private SQL areas for


executed statements

* PL/SQL Procedures and Packages

* Allocation and Reuse of Memory


Library Cache
 Shared SQL
* PARSE TREES for SQL statements
* EXECUTION plans for SQL statements
* Size dependent on complexity

 Private SQL
* Each session has one
* Persistent and Runtime areas
* Cursors
Library Cache
 PL/SQL Program Units
* Procedures, functions, Packages,
anonymous blocks and database triggers
 Allocation and Reuse of Memory
* Every SQL statement submitted, Oracle
automatically allocates memory
* Checks for existence
* Allocate private SQL area
* May flush the shared pool
PGA
PGA
 Varies depending if dedicated or Shared
servers (MTS) are used
 Stack space
 Session information (PGA verses Shared
Pool)
 Memory allocated to hold a session’s
variables and arrays
 Automatically managed in 9i with the
SQL memory management
Questions
 What is the name of Oracle’s memory
structure?
 What are its contents?
 How is it divided?
 If I have 150 mb SGA, why does Oracle
change the size?
 Can you vary sizes of Oracle blocks? If
so, how?
Oracle Database
 Composed of two structures:
 Physical (Operating System view)
 Logical (Oracle’s view)
Physical View
Files
Physical Structure
Made up of:
 Data files
 Redo Log Files – two or more with
members
 One or more Control Files
 One Parameter File
 Trace and alert log files
 One Password file
Datafile
 Disk space for a tablespace
 One or more per tablespace
 Associated with only one tablespace
 Consists of segments:
* UNDO, Temporary, Data, index, undo,

LOB and cache (for the most part)


Redo Log Files
Characteristics
 Record changes made to the data by
various transactions
 Help RECOVER the data in case of a
failure
 Streamline the process of how data is
written to disk
Control Files
 Record of the overall architecture and
status of the database
 Easily moved and recovered
 Contain the following:
 Database NAME
 Datafiles NAMES and LOCATIONS
 Redo log file NAMES, Log sequence
number and LOCATIONS
Parameter File
 Attributes of an instance are defined
through an Oracle Parameter File
 Determines the size and characteristics
of the instance
 Stored in an ASCII file or housed with
the database in a binary file
Parameter File
 The only Oracle file that is ASCII
 All other files are binary and not directly
changeable by the DBA
 Read-only when the instance starts
 Most changes require a stop and restart
of the instance
Trace and Alert Logs
 Trace files contain information about
significant events
 Alert log records the commands and
results of major events in the life of the
database
 Monitor daily
 Rename for historical purposes
Logical View
Structures
Logical View Structures
 Tablespace(s)
 Schema objects
 Segments
 Extents
 Data blocks
Tablespace(s)
 Logically divides a database
 One or more datafiles are explicity
created for each one
 Logically divided into segments that are
further divided into extents and blocks
 Can be defined as read-only
 A unit of space to store a schema’s
objects
Object(s)
 Schema(s)

 A collection of objects owned by one Oracle


user

 Object(s)

 Tables, indexes, views, sequences, stored


procedures, functions, packages, UNDO
segments
Extents and Blocks
 A collection of the smallest object in a
database
 An extent can be of a varying size
 Extents MUST be contiguous
 Blocks are the finest collection of space
in an Oracle database
Questions
 What are the physical files of a database
system?
 What are the logical entities of a
database?
 What is the smallest structure?
 Which structure MUST be contiguous?
 Which structure will tell you event
information?
Background Processes
Review
Background Processes
 Every instance has BACKGROUND
PROCESSES
 BACKGROUND PROCESSES perform
I/O, handle process cleanup and monitor
the ORACLE database
 Provide support, increase performance,
assist in recovery and make the database
more reliable
Background Processes
 DBW0 (DBWn)
 LGWR
 PMON
 SMON
 CKPT
 ARCn
Database Buffer
 After the changed data (redo entries) are
written to the online redo log files, the
changed data will be written to disk
 These changed data are called ‘dirty’
 Dirty data are moved to the ‘write’ list
 Dirty data can be on the ‘write’ list and
on the LRU list
DBWn
 At some time after the redo entries have
been written into the online redo logs,
the database writer (DBWn) writes the
dirty buffer back to the database

 This is called ‘delayed write’ and is


based on initialization parameters
DBWn (Database Writer)
 Can have one or more running
 Only available on systems with Asynch I/O
 Can use I/O slaves to duplicate the above on
systems without it
 Performs all WRITES to the database
 Keeps the BUFFER CACHE clean and free
When does the DBWR write?
 The dirty list reaches a threshold length
 A DBWR timeout
 LGWR issues a checkpoint
LGWR (Log Writer)
 Writes the REDO log entries (located in
the REDO LOG BUFFER) to the REDO
LOG files
 Only the changed data, not the entire
Oracle block(s) is written to the redo logs
 Issues checkpoints
Online Redo Log Files
 The online redo log files hold the
‘redo entries’
 Only the changed bytes are written to
the online redo log file
 The entire data block is not written to
these logs
Online Redo Log Files
 There is a fixed number of online redo
log file groups
 Defined at database creation time
 Can add or drop groups or members
(discussed later)
Online Redo Log Files
 Redo log file groups cycle

 If there are three redo log file groups:

 When the first group is full, LGWR starts writing tothe


second group
 When the second group is full, LGWR writes to the
third group
 When the third group is full, LGWR writes to the first
group
LGWR (Log Writer)
 What causes the LGWR to clear the REDO LOG
BUFFER and transfer the transactions to disk?
 When a user process COMMITS a
TRANSACTION
 TIME-OUT (caused every three seconds)
 When the redo log buffer becomes 1/3 FULL
 When the DBWR writes the dirty buffers to
disk

You might also like