22
Administrace Oracle Administrace Oracle DBI013 DBI013 Inštancia Oracle (pamäť a background procesy) Ján Lučanský

Administrace Oracle DBI013

  • Upload
    hanne

  • View
    38

  • Download
    0

Embed Size (px)

DESCRIPTION

Administrace Oracle DBI013. Inštancia Oracle (pamäť a background procesy) Ján Lučanský. Čo Oracle drží v pamäti. Kód programu Informácie o pripojených sessions D áta potrebné počas vykonávania programu Zdieľané medzi procesné informácie ( napr. informácie o zámkoch ) Cacheované dáta. - PowerPoint PPT Presentation

Citation preview

Page 1: Administrace Oracle DBI013

Administrace OracleAdministrace OracleDBI013DBI013

Inštancia Oracle (pamäť a background procesy)

Ján Lučanský

Page 2: Administrace Oracle DBI013

Čo Oracle drží v pamätiČo Oracle drží v pamäti

Kód programu Informácie o pripojených sessions Dáta potrebné počas vykonávania

programu Zdieľané medzi procesné informácie (napr.

informácie o zámkoch) Cacheované dáta

Page 3: Administrace Oracle DBI013

Základné pamäťovéZákladné pamäťovéštruktúryštruktúry

System Global Area (SGA) Je zdieľaný všetkými serverovými a background procesmi Obsahuje:

Data buffer cache Redo log buffer Shared buffer ...

Program Global Areas (PGA) Privátna oblasť pre každý serverový a background proces Jeden PGA pre každý proces Obsahuje

Stack areas Data areas

Page 4: Administrace Oracle DBI013

Štruktúra pamätiŠtruktúra pamäti((základný diagramzákladný diagram))

Page 5: Administrace Oracle DBI013

System Global AreaSystem Global Area11/2/2

Jedná sa o zdieľané pamäťové štruktúry, ktoré obsahujú dáta pre jednu inštanciu databáze

Každá inštancia má svoju vlastnú SGA Do SGA je typu read/write Všetci užívatelia môžu čítať informácie obsiahnuté v SGA Len niektoré procesy môžu do SGA zapisovať SGA obsahuje:

Database buffer cache Redo log buffer Shared pool Java pool Large pool (nepovinné) Data dictionary cache Iné informácie

Page 6: Administrace Oracle DBI013

SSystem ystem GGlobal lobal AArearea2/22/2

Ak Oracle beží ako Shared Server Processes, potom sú v SGA uložené aj fronty úloh a niektoré časti PGA

Veľkosť SGA je možno meniť za chodu. Veľkosť je určená následujúcimi parametrami :

SGA_MAX_SIZE – maximálna veľkosť SGA SGA_CACHE_SIZE – veľkosť Database Buffer Cache LOG_BUFFER – veľkosť Log Bufferu SHARED_POOL_SIZE – veľkosť Shared Pool LARGE_POOL_SIZE – veľkosť Large Pool SGA (implicitne 0)

Príkaz SHOW SGA v SQL*PLUS

SQL> show sga Total System Global Area 61771936 bytes Fixed Size 73888 bytes Variable Size 44249088 bytes Database Buffers 16384000 bytes Redo Buffers 1064960 bytes

Page 7: Administrace Oracle DBI013

Fixed SGAFixed SGA

Jedna časť SGA obsahuje základné informácie o stave databáze a inštancií.

K tejto časti pristupujú background procesy Táto časť neobsahuje žiadne užívateľské dáta. Obsahuje informácie o medziprocesnej komunikácií (napr. o

zamykaní objektov)

Page 8: Administrace Oracle DBI013

Database Buffer CacheDatabase Buffer Cache

Časť SGA, ktorá drží kópie súborov v pamäti. Všetky užívateľské procesy pripojené na inštanciu zdieľajú Buffre v cache sú organizované v dvoch zoznamoch

Write list Obsahuje tzv „dirty buffers“. Sú to tie buffers, ktoré boli modifikované,

ale ešte neboli aktualizované na disku LRU list (Least Recently Used)

Algoritmus LRU vyhadzuje najdlhšie nepoužívane bloky pamäte Zoznam má dva konce: LRU koniec a MRU (Most Recently Used) koniec Štandardne sa pri použití bufferu zaradí na MRU koniec Vynímkou je full table scan, kde sa buffre ukladajú na LRU koniec To je však možno zamedziť prepínačom CACHE pri príkaze CREATE

TABLE, ALTER TABLE

Page 9: Administrace Oracle DBI013

Redo Log Buffer Redo Log Buffer

Ide o “cyklyckú pamäť”, ktorá sa nachádza v SGA Udržuje informácie o zmenách, ktoré v databáze nastali Slúži k tomu, aby bolo možné vykonať “krok späť“ Takisto môže poslúžiť pri obnove db Zaznamenávanie operácie

INSERT UPDATE DELETE CREATE ALTER DROP

Page 10: Administrace Oracle DBI013

Shared Pool – Library Shared Pool – Library CacheCache

Librabry cache – jedná z častí Share Pool Obsahuje Zdieľané SQL oblasti Privátne SQL oblasti PL/SQL procedúry a balíčky Kontrolné štruktúry (zámky,...)

Oracle dokáže rozpoznať, keď dvaja užívatelia spúšťajú ten istý SQL príkaz a takto využiť zdieľanú SQL oblasť (Shared SQL Area)

Shared SQL Area obsahuje strom rozdeleného SQL príkazu a plán vykonania pre daný príkaz.

Oracle týmto šetrí pamäť

Page 11: Administrace Oracle DBI013

Shared Pool – Dictionary Shared Pool – Dictionary CacheCache

Distionary cache Uchováva read-only množinu tabuliek zvanú Data Dictionary,

ktorá obsahuje následujúce informácie o databáze Definície schém objektov (tabuľky, pohľady, indexy, clustre, funkcie,

triggre,...) Informácie o alokovanom a použitom mieste pre objekt Defaultne hodnoty stĺpcov Integritné obmedzenia Meno, privilégia a rola každého užívateľa Informácie o tom, kto pristupoval a menil objekty

Data dictionary je fyzicky uložený v Data dictionary cache (známe aj ako row cache) Library cache

Page 12: Administrace Oracle DBI013

Large poolLarge pool

Nepovinná časť SGA, ktorá zaisťuje alokovanie pamäte pre: Session pamäť pre shared server I/O serverové procesy Operácie na zálohovanie a obnovu

Nepoužíva LRU list

Page 13: Administrace Oracle DBI013

Program Global AreaProgram Global Area

Nezdieľaná pamäť vytvorená pri štarte serveru

Prístup k nej má výlučné serverovský proces (server process)

Obsah PGA pre dedicated server je odlišný od toho pre shared server

Page 14: Administrace Oracle DBI013

ProcessesProcesses

Obecná hierarchia procesov je nasledujúca:

Užívateľské procesy Procesy databáze Oracle

Serverové procesy Background procesy

Page 15: Administrace Oracle DBI013

Server ProcessesServer Processes

dedicated server process Jeden užívateľský proces je spojený

so serverovým procesom v pomere 1:1

shared server process Viac užívateľských procesov môže byť

spojených k jednému serverovému procesu

Page 16: Administrace Oracle DBI013

Oracle Dedicated Server Oracle Dedicated Server ProcessesProcesses

Nie je veľmi výhodný pri bežnej práci. DB server nesie réžiu pri nečinnosti užívateľského procesu

Hodí sa len na niektoré situácie

Dávkové súvislé akcie Zálohovanie, obnova a

zotavenie (Recovery Manager)

Page 17: Administrace Oracle DBI013

Oracle Shared Server ProcessesOracle Shared Server Processes

Typicky viac užívateľských procesoch pracuje s jedným serverovým

Je to efektívnejšie, keďže aplikácie spolupracujú s dátami DB serverom v časových odstupoch (SELECT, INSERT len raz za čas...).

So shared server processes je réžia rozdelená medzi viacero užívateľských procesov (na rozdiel od Dedicated Server Processes)

Page 18: Administrace Oracle DBI013

Background processesBackground processespríklady 1/3príklady 1/3

Database writerDatabase writer (DBWn) Zapisuje modifikované bloky z cache buffera do súborov

Oracle dovoľuje spustiť maximálne 20 týchto súborov Log writerLog writer (LGRW)

Slúži na zapisovanie redo logov na disk CheckpointCheckpoint (CKPT)

Dáta z bufferov sa na disk zapisujú v určitom čase (za pomoci DBWn)

Ten čas, kedy k tomu dôjde sa nazýva checkpoint. Proces Checkpoint ma na starosti komunikáciu s

DBWn.

Page 19: Administrace Oracle DBI013

Background processesBackground processespríklady 2/3príklady 2/3

System monitorSystem monitor (SMON) Vykonáva obnovu po zrútení inštancie. Takisto dokáže uvoľniť dočasné segmenty, ktoré sa nebudú

používať dokáže obnoviť mŕtve transakcie, ktoré v sa v dôsledku

havárie nestihli vykonať Process monitorProcess monitor (PMON)

Vykonáva obnovu, ak dôjde ku pádu užívateľského procesu je zodpovedný za uvoľnenie cache a zdrojov, ktoré proces používal

Archiver Archiver (ARCn) Archivuje redo logy

Page 20: Administrace Oracle DBI013

Background processesBackground processespríklady 3/3príklady 3/3

RecovererRecoverer (RECO) využíva sa v distribuovaných databázach na obnovenie

distribuovaných transakcií Odrolovanie transakcie môže v tomto prípade zapríčiniť

pád systému alebo problém so sieťou. DispatcherDispatcher (Dnnn)

jedná sa o nepovinné procesy, ktoré bežia typicky v shared server

Global Cache ServiceGlobal Cache Service (LMS) Súvisí s Oracle Real Application Cluster enviroment

Coordinator Job Queue ProcessCoordinator Job Queue Process (CJQ0) Koordinuje frontu úloh pre danú inštanciu

Page 21: Administrace Oracle DBI013

Monitorovanie Monitorovanie ProcesovProcesov

Oracle má vstavané pohledy, ktoré poskytujú informácie o procesoch. Ide o následujúce pohledy

V$PROCESS – informácie o práve bežiacich procesoch V$SESSION – zoznam všetkých sessions V$SESS_IO – štatistiky I/O pre sessions V$SESSION_LONGOPS – informácie o procesoch bežiacich dlhšie než

6 sekúnd V$SYSSTAT – štatistky session V$SQLAREA - obsahuje štatistiky o shared SQL area a obsahuje

jeden riadok pre každý SQL reťazec. Takisto obsahuje štatistiky o SQL príkazoch, ktoré sú v pamati, ktoré sú rozparsované a ktoré sú pripravené pre spustenie.

Page 22: Administrace Oracle DBI013

Diagram pamäti a Diagram pamäti a background procesovbackground procesov