Giuseppe’s Weblog

Just another WordPress.com weblog

Archive for Maggio 2009

Note su Oracle

nessun commento

Di seguito gli appunti di un seminario Oracle seguito qualche anno fa (20/04/2004) che ho ritenuto utile trascrivere.

Un database Oracle consiste di:

  • Memoria SGA: DB Buffer Cache, Shared Pool, Redolog Buffer
  • Processi: DBWR, LGWR, SMON, PMON, CKPT
  • File: Datafile, Control File, Redo Log File

DB Buffer Cache: fa permanere in memoria i dati piu’ frequentemente usati

Shared Pool: cache dei piani di esecuzione degli statement SQL arrivati al database

Redo Log Buffer: registro delle operazioni che hanno modificato il database

DBWR: scrive i dati nei datafile

LGWR: scrive le operazioni dal Redolog Buffer al Redolog File

SMON: system monitor, legge il control file per attivare le attivita’ di recovery in caso di crash

PMON: gestore dei processi, libera le risorse usate dalle connessioni scadute

CKPT: check point, si occupa della sicronizzazione tra i dati in memoria e su disco

Struttura database Oracle

Le operazioni in caso di istruzione SQL di Select sono le seguenti:

  1. Parsing
  2. Calcolo del piano di esecuzione
  3. Fetch

Ma se l’istruzione e’ gia’ presente in shared pool la sola fase di fetch viene eseguita

La fetch preleva i dati da la DB buffer cache se gia’ presenti in memoria altrimenti li preleva da datafile.

Le operazioni in caso di istruzione che modifica i dati sono le seguenti:

  1. Scrittura di un Rollback Block nella DB buffer cache
  2. Scrittura dell’operazione fatta nel Redo Log Buffer

L’operazione di commit non sincronizza i datafile ma semplicemente i Redolog, l’operazione di modifica viene riportata nel Redo Log File.

Il blocco modificato viene marcato come sporco (Dirty) e non potra’ essere modificato fino a che non verra effettuata la sicronizzazione (di default dopo 3 minuti oppure prima se viene superato il numero di blocchi dirty di soglia). E necessaria una sincronizzazione (Check Point) anche nel caso di un Redo Log pieno.

Il Check Point produce un numero l’SCN scritto nel Control File e nel Redo Log file. In caso di auto recovery tutte le operazioni successive all’ultimo SCN sono quelle necessarie al recovery.

Gli stati di apertura di un database sono nell’ordine:

  • shutdown
  • nomount: viene letto il parameter file init<SID>.ora
  • mount: viene letto il control file
  • open:

Le opzioni di chiusura di un database sono:

  • abort
  • immediate
  • transactional
  • normal

Alla fine della creazione di un database generalmente possono essere cancellate:

  • la cartella template assistant/dbca
  • e i tablespace TOOLS, USERS, INDX

Written by gfiorito

Maggio 17, 2009 alle 11:49 pm

Pubblicato in Oracle