Administrace Oracle - Správa zdrojů Jan Smrčina 15. října 2012
Motivace K čemu správa zdrojů? Mějme databázi menz UK a její chtivé uživatele: Student chce dostat jídlo. (Jednoduchá transakce) Manažer chce rozsáhlé statistiky. (Složitý dotaz) Admin si pustil zálohu DB, že si zatím dá oběd. DB náhle nestíhá a někdo na to doplatí. (Admin)
Oracle a zdroje Co nám Oracle nabízí? Profiles Resource Manager
Profiles Co to je? Obdoba rolí (Roles) Profile = soubor limitů na zdroje Každý uživatel má přiřazen právě jeden profile
Profiles - atributy Co tím lze omezit? Počet uživatelských relací (SESSIONS PER USER) Procesorový čas na relaci (CPU PER SESSION) Procesorový čas na volání (CPU PER CALL) Doba relace (CONNECT TIME) Doba neaktivity (IDLE TIME) Počet čtených bloků na relaci (LOGICAL READS PER SESSION) Počet čtených bloků na volání (LOGICAL READS PER CALL) Velikost zabraného prostoru (PRIVATE SGA) Spotřebované zdroje v Resource Units (COMPOSITE LIMIT)
Profiles - exekutiva Co když uživatel limity překročí? CONNECT TIME nebo IDLE TIME: Rollback probíhající transakce a odpojení uživatele % PER CALL: Pouze zrušení volání Ostatní případy: Zruší volání a nechá uživatele COMMIT nebo ROLLBACK, pak jej odpojí
Profiles - příkazy CREATE PROFILE název profilu LIMIT omezení ; ALTER PROFILE název profilu LIMIT omezení ; ALTER USER uživatel PROFILE název profilu ; DROP PROFILE název profilu [CASCADE] ; Bez CASCADE nesmaže přiřazené profily SELECT * FROM DBA PROFILES ;
Profiles - příklad 1. SET LINESIZE 150 (doporučuji) 2. CREATE PROFILE omezeni LIMIT SESSIONS PER USER 4 CPU PER SESSION 8 ; 3. SELECT * FROM DBA PROFILES ; 4. ALTER USER smrcinjuser1 PROFILE omezeni ; 5. SELECT username, profile FROM DBA USERS ; 6. ALTER PROFILE omezeni LIMIT CPU PER SESSION 16 ; 7. DROP PROFILE omezeni ; (selže - profil je přiřazen uživateli) 8. DROP PROFILE omezeni CASCADE ;
Resource Manager Přiděluje zdroje Umožňuje komplexní politiky Má poměrně složité rozhraní
RM - Komponenty Oracle Resource Manager má tři hlavní části: Resource Plan Resource Consumer Groups Resource Plan Directives
RM - Resource Plan Politika přidělování zdrojů Jakýsi obal na pravidla V databázi je aktivní právě jeden (nebo je RM vypnutý) Aktivní Resource Plan lze měnit za běhu (manuálně nebo automaticky)
RM - Resource Consumer Groups Skupiny session Zdroje se přidělují těmto skupinám Každá session má přiřazenu právě jednu skupinu Skupinu lze přepínat za běhu (automaticky i manuálně) Speciální skupiny: SYS GROUP - pro systémové úlohy OTHER GROUPS - defaultní
Resource Plan Directives Pravidla o přidělování zdrojů Prvky Resource Planu Souhrn pravidel pro přidělení zdrojů skupině Přiděluje zdroje skupině, nebo jinému plánu (subplánu)
Příklad Resource Plánu
Příklad složitějšího Resource Plánu
Resource plány - omezení Plány (se subplány) mají svá logická omezení V plánech nesmí být cykly (odkaz na nadřazený plán) V celé struktuře musí existovat pravidlo pro skupinu OTHER GROUPS V celé struktuře smí být každý plán odkazován nejvýše jednou Poznámka: Skupinám lze v plánech přidělit více pravidel, nicméně Oracle to nedoporučuje. (Pravidla podle kterých dochází ke skládání pravidel o zdrojích nejsou příliš intuitivní.)
RM - Mapování session do skupin Každá session musí mít přiřazenou skupinu Nepřiřazené sessions spadají do skupiny OTHER GROUPS Přiřazenou skupinu lze procesu měnit Při změně parametrů Při překročení limitů využívaných zdrojů Manuálně (admin nebo oprávněný uživatel)
RM - Mapování session do skupin - kritéria Jméno uživatele (v databázi) Jméno služby Jméno uživatele v klientském systému Klientský program Název klientského stroje Název používaného modulu Název používané služby... Je-li to povoleno, RM přesouvá při změně nastavených kritérií session do nastavených skupin i za běhu. Pozn.: Jednotlivým kritériím lze přiřadit priority.
RM - Ovládané zdroje Procesorový čas Stupeň paralelismu (počet přiřazených paralelních serverů) Maximální počet aktivních session ve skupině Časový limit pro operaci Velikost Undo pool Maximální dobu neaktivity
RM - Zdroje - CPU Alokace CPU je rozdělena do 8mi prioritních skupin P1-P8 Přidělují se vždy procenta celkové kapacity CPU Co se nepřidělí na vyšší vrstvě, propadne do vrstvy nižší Pokud nějaký čas propadne osmou vrstvou, rozdělí se Kromě tohoto systému lze přidělit i statické maximum procesorového času, které session nemůže překročit.
Užitečné příkazy a pohledy Užitečné příkazy - vše v PL/SQL balíčku DBMS RESOURCE MANAGER CREATE CONSUMER GROUP SET CONSUMER GROUP MAPPING SET CONSUMER GROUP MAPPING PRI CREATE PLAN CREATE PLAN DIRECTIVE CREATE PENDING AREA VALIDATE PENDING AREA SUBMIT PENDING AREA SWITCH PLAN resp.: ALTER SYSTEM SET RESOURCE MANAGER PLAN název plánu ; SELECT * FROM DBA RSRC CONSUMER GROUPS DBA RSRC CONSUMER GROUP PRIVS DBA RSRC PLANS