1 / 22

Administrace Oracle DBI013

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.

hanne
Download Presentation

Administrace Oracle DBI013

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Č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

  3. Základné pamäťovéš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

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

  5. System Global Area1/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

  6. System Global Area2/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 BufferCache • 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

  7. Fixed 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)

  8. Database 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

  9. 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

  10. Shared Pool – Library Cache • 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äť

  11. Shared Pool – Dictionary Cache • 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

  12. Large 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

  13. Program 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

  14. Processes • Obecná hierarchia procesov je nasledujúca: • Užívateľské procesy • Procesy databáze Oracle • Serverové procesy • Background procesy

  15. Server 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

  16. Oracle Dedicated Server Processes • 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)

  17. Oracle 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)

  18. Background processespríklady 1/3 • Database writer(DBWn) • Zapisuje modifikované bloky z cache buffera do súborov Oracle dovoľuje spustiť maximálne 20 týchto súborov • Log writer (LGRW) • Slúži na zapisovanie redo logov na disk • Checkpoint(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.

  19. Background processespríklady 2/3 • System 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 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 (ARCn) • Archivuje redo logy

  20. Background processespríklady 3/3 • Recoverer (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. • Dispatcher (Dnnn) • jedná sa o nepovinné procesy, ktoré bežia typicky v shared server • Global Cache Service (LMS) • Súvisí s Oracle Real Application Cluster enviroment • Coordinator Job Queue Process(CJQ0) • Koordinuje frontu úloh pre danú inštanciu

  21. Monitorovanie Procesov • 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.

  22. Diagram pamäti a background procesov

More Related