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
![Page 1: Administrace Oracle DBI013](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/1.jpg)
Administrace OracleAdministrace OracleDBI013DBI013
Inštancia Oracle (pamäť a background procesy)
Ján Lučanský
![Page 2: Administrace Oracle DBI013](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/2.jpg)
Č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](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/4.jpg)
Štruktúra pamätiŠtruktúra pamäti((základný diagramzákladný diagram))
![Page 5: Administrace Oracle DBI013](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/14.jpg)
ProcessesProcesses
Obecná hierarchia procesov je nasledujúca:
Užívateľské procesy Procesy databáze Oracle
Serverové procesy Background procesy
![Page 15: Administrace Oracle DBI013](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062301/5681453f550346895db2088b/html5/thumbnails/22.jpg)
Diagram pamäti a Diagram pamäti a background procesovbackground procesov