administrace oracle dbi013
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 PresentationTRANSCRIPT
Administrace OracleAdministrace OracleDBI013DBI013
Inštancia Oracle (pamäť a background procesy)
Ján Lučanský
Č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
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
Štruktúra pamätiŠtruktúra pamäti((základný diagramzákladný diagram))
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
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
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)
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
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
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äť
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
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
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
ProcessesProcesses
Obecná hierarchia procesov je nasledujúca:
Užívateľské procesy Procesy databáze Oracle
Serverové procesy Background procesy
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
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)
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)
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.
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
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
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.
Diagram pamäti a Diagram pamäti a background procesovbackground procesov