Resource manager je prosředek, který umožňuje databázi přerozdělovat zdroje, přidělené databázi jako celku operačním systémem. Např. menežovat přidělování zdrojů uživatelům, přepínání mezi procesy DB serveru, pokud jich je mnoho...
ObsahResource manager jde využít pokud
Resource plan specifikuje skupiny uživatelů, a určuje jaká pravidla budou pro danou skupinu použita. Vpodstatě se dají rozlišit dvě možná schémata a to
Poznamenejme, že k plánům mohou v grafu mohou vést k jednotlivým uzlům zdroje od několika rodičů, např při již zmíněných plánech na noc a na den.
|
Vytvoří simlple-level resource plan, obsahující nanejvýš 8 consumer groups, v jednom kroku. |
|
Vytvoří resource plan. |
|
Updatuje resource plan's comment informace. |
|
Maže resource plán a jeho direktivy. |
|
Maže resource plan and a všechny jeho potomky |
|
Vytvoří resource consumer group. |
|
Updatuje a consumer group's comment informace. |
|
Maže a consumer group. |
|
Specifikuje resource plan directives které alokují zdroje resource consumer groups v rámci plán nebo subplánu v multilevel schematu. |
|
Updatuje plan directives. |
|
Maže plan directives. |
|
Sets the initial consumer group for a user. |
|
Switches the consumer group of a specific session. |
|
Switches the consumer group of all sessions belonging to a specific user. |
Jako administrátor s volbou ADMIN
můžete můžete přidělit adminstrátorská práva pro práci s DBMS_RESOURCE_MANAGER balíkem také jiným uživatelům také prostřednictvím DBMS_RESOURCE_MANAGER_PRIVS
package. Využít můžete následující procedůry.
Procedure | Description |
---|---|
|
Grants |
|
Revokes |
|
Grants permission to a user, role, or |
|
Revokes permission for a user, role, or |
Příklad:
EXEC
DBMS_RESOURCE_MANAGER_PRIVS.GRANT_SYSTEM_PRIVILEGE -
(GRANTEE_NAME => 'scott', PRIVILEGE_NAME => 'ADMINISTER_RESOURCE_MANAGER', -
ADMIN_OPTION => FALSE);
Obsah
Vztvoření jednoúrovňového plánu jde realizovat pomocí procedury CREATE_SIMPLE_PLAN. Tato procedure v jednom kroku umožňuje vztvoření plánu, skupin a přidělení zdrojů Můžete specifikovat následující paramery:
SIMPLE_PLAN | Jméno plánu |
CONSUMER_GROUPx | Skupina císlox. Maximální počet skupin je 8 |
GROUPx_CPU | Procesorové zdroje přidělené skupině x. Maximální počet skupin je 8 |
Příklad:
BEGIN
DBMS_RESOURCE_MANAGER.CREATE_SIMPLE_PLAN(SIMPLE_PLAN => 'simple_plan1',
CONSUMER_GROUP1 => 'mygroup1', GROUP1_CPU => 80,
CONSUMER_GROUP2 => 'mygroup2', GROUP2_CPU => 20);
END;
Vytvoření multi-level plánu je o něco složitější...
Nejprve bude třeba vysvetlit pojem Pending area
Pending area je prostor, který je vytvořen za účelem uschování změn, které provedeme v plánu, aby se tyto změny mohli validovat, před tím, než vstoupí v platnost.
Vytvoření multiúrovňového plánu se skládá z několika logických kroků
Před použitím ML plánu plán prochází validací, která sleduje některé logické požadavky například
|
|
|
Lists all resource consumer groups that exist in the database. |
|
|
|
Lists all resource plan directives that exist in the database. |
|
List all resource plans that exist in the database. |
|
|
|
Displays all available active session pool resource allocation methods. |
|
Displays all available parallel degree limit resource allocation methods. |
|
Displays all available queuing resource allocation methods. |
|
Displays information about active resource consumer groups. This view can be used for tuning. |
|
Displays all available CPU resource allocation methods for resource consumer groups. |
|
Displays the names of all currently active resource plans. |
|
Displays all available CPU resource allocation methods for resource plans. |
|
Lists session information for each current session. Specifically, lists the name of each current session's resource consumer group. |
Příklady:
Grantovaní uživatelé
Schema planu.
SQL> SELECT * FROM DBA_RSRC_CONSUMER_GROUP_PRIVS;
GRANTEE GRANTED_GROUP GRA INI
------------------------------ ------------------------------ --- ---
PUBLIC DEFAULT_CONSUMER_GROUP YES YES
PUBLIC LOW_GROUP NO NO
SCOTT MARKET NO NO
SCOTT SALES YES NO
SYSTEM SYS_GROUP NO YES
Právě aktivní plány
SQL> SELECT PLAN,COMMENTS,STATUS FROM DBA_RSRC_PLANS;
PLAN COMMENTS STATUS
----------- ------------------------------------------------------- ------
SYSTEM_PLAN Plan to give system sessions priority ACTIVE
BUGDB_PLAN Resource plan/method for bug users sessions ACTIVE
MAILDB_PLAN Resource plan/method for mail users sessions ACTIVE
MYDB_PLAN Resource plan/method for bug and mail users sessions ACTIVE
GREAT_BREAD Great plan for great bread ACTIVE
ERP_PLAN Resource plan/method for ERP Database ACTIVE
SQL> SELECT * FROM V$RSRC_PLAN;
NAME
--------------------------------
MYDB_PLAN
MAILDB_PLAN
BUGDB_PLAN
Před startem databáze je možné pomocí parametru RESOURCE_LIMIT
Během běhu databáze příkazem ALTER SYSTEM SET RESOURCE_LIMIT = TRUE;
Pro vztvoření profilu musíte mít práva CREATE PROFILE
Příklad vytvoření profilu:
Jako obvykle je zde syntaxí takřka stejný příkaz
CREATE PROFILE clerk LIMIT
SESSIONS_PER_USER 2
CPU_PER_SESSION unlimited
CPU_PER_CALL 6000
LOGICAL_READS_PER_SESSION unlimited
LOGICAL_READS_PER_CALL 100
IDLE_TIME 30
CONNECT_TIME 480;
ALTER PROFILE
. a logicky i podobný DROP PROFILE
Pokud uživatel nemá přidělen profil, je použit DEFAULT
který je součástí databáze.
V překladu něco jako "složené limity.." umožňují specifikovat omezení uživatela na základě toho, jak využívá několik položek najednou.
Příklad:
Což nastaví parametr cost na
CREATE PROFILE clerk LIMIT
COMPOSITE_LIMIT 20000
SESSIONS_PER_USER 2
CPU_PER_CALL 1000;
ALTER RESOURCE COST
CPU_PER_SESSION 1
LOGICAL_READS_PER_SESSION 50;
cost = (1 * CPU_PER_SESSION) + (50 * LOGICAL_READS_PER_SESSION)
Pomocí příkazu :
SELECT * FROM DBA_PROFILES
ORDER BY PROFILE;