Tuesday, January 21, 2014

Oracle DB - Instanca


Oracle baznu instancu čini rezervisani memorijski prostor na serveru i skup Oracle baznih procesa. Pod rezervisanim memorijskim prostorom podrazumijeva se prostor u RAM memoriji servera koji je Oracle baza podataka "rezervisala" za sebe. Taj prostor u RAM-u servera naziva se SGA (System Global Area). Pored SGA prostora, Oracel baza podataka "zauzima" dodatni prostor u RAM-u za rad svojih procesa. Taj prostor u RAM-u naziva se PGA (Program Global Area).

SGA

Oracle SGA predstavlja ovir memorijskog prostora koji je potreban procesima Oracle baze podataka za njihov rad. U okviru SGA prostora izdvajaju se posebne memorijske (buffer) cjeline. Najtipičnije memorijske cjeline u okviru SGA memoriskog prostora su:

buffer cache ili "database buffer cache" - predstavlja prostor u RAM-u u koji se smještaju podaci koji su pročitani iz baznog data fajla s ciljem dalje obrade pomoću SQL naredbi

shared pool - predstavlja memorijski keš (cache) parsiranih često korišćenih SQL naredbi

redo log buffer - sadrži informacije o komitovanim transakcijama koje baza još nije upisala u Redo Log fajl

dictionary cache - sadrži informacije o data dictionary (sistemskim) tabelama, kao npr. informacije o korisničkim nalozima, data-fajlovima, segmentima, ekstentima, tabelama i privilegijama

java pool - služi za parsiranje JAVA naredbi

library cache - sadrži SQL naredbe, PL/SQL procedure i pakete, kao i kontrolne strukture kao npr. lock-ove

large pool - je prostor u RAM-u koji je rezervisan za posebne sistemske operacije: Backup/Restore, serverske I/O operacije, ...


Pored ovih memorijskih struktura postoje i neke druge, ali one se kreiraju zavisno od opcija koje Oracle baza koristi. Neke od dodatnih memorijskih struktura su: streams pool, nk buffer cache (n veličina baznog bloka), itd.

Grafički, SGA bi mogla da se predstavi na sledeći način:


Veličina SGA memorije definiše se prilikom instalacije Oracle baze podataka, a moguća je i naknadna modifikacija njene veličine. Počevši od 10g verzije Oracle baze podataka uvodi se i novi pojam vezan za SGA, a to je Automatic Memory Management (AMM). AMM obogućava automatizaciju podešavanja SGA memorijskog prostora, uvode se novi parametri, ... ali o tome će mo kasnije.


Oracle bazni procesi

Drugu komponentu Oracle bazne instance čine Oracle bazni procesi. Osnovi Oracle bazni procesi su:

database writer (DBWn) - proces koji je zadužen za upisivanje sadržaja baznog buffer cache-a u data fajl. n označava redni broj procesa

log writer (LGWR) - proces koji je zadužen za upisivanje redo log podataka u Redo Log fajl. Redo log podaci se generišu u redo log baferu u okviru SGA memorije

checkpoint (CKPT) - u specifičnim vremenskim intervalima bazni proces DBWn vrši upisivanje svih modifikovanih podataka koji se nalaze u baznom baferu SGA memorije u bazni data fajl. Taj događaj se naziva checkpoint

system monitor (SMON) - proces izvršava proceduru za oporavak instance prilikom njenog startovanja u slučaju da je instanca nepropisno prestala sa radom. SMON, takođe, vrši brisanje privremenih (temporary) segmenata koji se više ne koriste kao i oporavak "mrtvih" transakcija koje su nastale "padom" sistema
 
process monitor (PMON) - proces koji je zadužen za oporavak korisničkog procesa u slučaju da je došlo do nekog problema prilikom rada korisnika na bazi. PMON proces zadužen je i za "čišćenje" keša (cache-a) i oslobađanje resursa koje je korisnički proces koristio

archiver (ARCn) - proces koji je zadužen za kopiranje (arhiviranje) "punih" Redo Log-ova prije njihovog brisanja. ARCn proces postoji samo ako Oracle baza radi u ARCHIVE LOG modu.


Pored nabrojanih procesa postoji još veliki broj procesa koji se aktiviraju u slučaju da je uključena neka dodatna opcija na Oracle bazi podataka .


Instanca se grafički može predstaviti na sledeći način: