19857623 Basic Oracle Architecture

Embed Size (px)

Citation preview

  • 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.