Resources v Databázi Oracle

Obsah

  1. Resource manager
    1. Co to je resource manager
    2. K čemu jde resource manager využít
    3. Komponenty resource manageru
  2. Resource plan
    1. Typy resource plánů
    2. Procedury pro manipulaci s plány
    3. Procedury pro manipulaci s právy uživatelů
    4. Vytváření sigle-level plánů
    5. Vytváření multi-level plánů
    6. Nahlížení informací v DB Resource manageru
  3. Přidělování zdrojů veskrze profily
    1. Zprovoznění resources přes profily
    2. Vytváření profilů
    3. Composite limits
    4. Nahlížení informací o profilech
  4. 1.Resource manager

    Obsah

    1.1Co to je resource manager

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

    Obsah

    1.2 K čemu jde resource manager využít

    Resource manager jde využít pokud

    Obsah

    1.3 Komponenty resource manageru

    My se budeme nadále zabívat Resource plány

    2 Resource plan

    Obsah

    2.1 typy resource plánu

    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. multi-more_plan

    Obsah

    2.2Procedury pro manipulaci s plany

    CREATE_SIMPLE_PLAN

    Vytvoří simlple-level resource plan, obsahující nanejvýš 8 consumer groups, v jednom kroku.

    CREATE_PLAN

    Vytvoří resource plan.

    UPDATE_PLAN

    Updatuje resource plan's comment informace.

    DELETE_PLAN

    Maže resource plán a jeho direktivy.

    DELETE_PLAN_CASCADE

    Maže resource plan and a všechny jeho potomky

    CREATE_CONSUMER_GROUP

    Vytvoří resource consumer group.

    UPDATE_CONSUMER_GROUP

    Updatuje a consumer group's comment informace.

    DELETE_CONSUMER_GROUP

    Maže a consumer group.

    CREATE_PLAN_DIRECTIVE

    Specifikuje resource plan directives které alokují zdroje resource consumer groups v rámci plán nebo subplánu v multilevel schematu.

    UPDATE_PLAN_DIRECTIVE

    Updatuje plan directives.

    DELETE_PLAN_DIRECTIVE

    Maže plan directives.

    SET_INITIAL_CONSUMER_GROUP

    Sets the initial consumer group for a user.

    SWITCH_CONSUMER_GROUP_FOR_SESS

    Switches the consumer group of a specific session.

    SWITCH_CONSUMER_GROUP_FOR_USER

    Switches the consumer group of all sessions belonging to a specific user.

    Obsah

    2.2 Procedury pro manipulaci s právy uživatelů

    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

    GRANT_SYSTEM_PRIVILEGE

    Grants ADMINISTER_RESOURCE_MANAGER system privilege to a user or role.

    REVOKE_SYSTEM_PRIVILEGE

    Revokes ADMINISTER_RESOURCE_MANAGER system privilege from a user or role.

    GRANT_SWITCH_CONSUMER_GROUP

    Grants permission to a user, role, or PUBLIC to switch to a specified resource consumer group.

    REVOKE_SWITCH_CONSUMER_GROUP

    Revokes permission for a user, role, or PUBLIC to switch to a specified resource consumer group.

    Příklad:

     
     EXEC
         DBMS_RESOURCE_MANAGER_PRIVS.GRANT_SYSTEM_PRIVILEGE -
        (GRANTEE_NAME => 'scott', PRIVILEGE_NAME => 'ADMINISTER_RESOURCE_MANAGER', -
         ADMIN_OPTION => FALSE);
     
      
     
    Obsah

    2.3 Vytvoření jednoduchého plánu

    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_PLANJméno plánu
    CONSUMER_GROUPxSkupina císlox. Maximální počet skupin je 8
    GROUPx_CPUProcesorové 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;
    

    Obsah

    2.4 Vytvoření multiúrovňového plánu

    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

    Obsah

    2.5 Nahlížení informací DB Resource manegeru

    DBA_RSRC_CONSUMER_GROUP_PRIVS

    USER_RSRC_CONSUMER_GROUP_PRIVS

    DBA view #lists all resource consumer groups and the users and roles to which they have been granted. USER view lists all resource consumer groups granted to the user.

    DBA_RSRC_CONSUMER_GROUPS

    Lists all resource consumer groups that exist in the database.

    DBA_RSRC_MANAGER_SYSTEM_PRIVS

    USER_RSRC_MANAGER_SYSTEM_PRIVS

    DBA view lists all users and roles that have been granted Database Resource Manager system privileges. USER view lists all the users that are granted system privileges for the DBMS_RESOURCE_MANAGER package.

    DBA_RSRC_PLAN_DIRECTIVES

    Lists all resource plan directives that exist in the database.

    DBA_RSRC_PLANS

    List all resource plans that exist in the database.

    DBA_USERS

    USERS_USERS

    DBA view contains information about all users of the database. Specifically, for the Database Resource Manager, it contains the initial resource consumer group for the user. USER view contains information about the current user, and specifically, for the Database Resource Manager, it contains the current user's initial resource consumer group.

    V$ACTIVE_SESS_POOL_MTH

    Displays all available active session pool resource allocation methods.

    V$PARALLEL_DEGREE_LIMIT_MTH

    Displays all available parallel degree limit resource allocation methods.

    V$QUEUEING

    Displays all available queuing resource allocation methods.

    V$RSRC_CONSUMER_GROUP

    Displays information about active resource consumer groups. This view can be used for tuning.

    V$RSRC_CONSUMER_GROUP_CPU_MTH

    Displays all available CPU resource allocation methods for resource consumer groups.

    V$RSRC_PLAN

    Displays the names of all currently active resource plans.

    V$RSRC_PLAN_CPU_MTH

    Displays all available CPU resource allocation methods for resource plans.

    V$SESSION

    Lists session information for each current session. Specifically, lists the name of each current session's resource consumer group.

    Příklady:
    Grantovaní uživatelé

    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
    
    Schema planu.
    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
    
    Právě aktivní plány
    SQL> SELECT * FROM V$RSRC_PLAN;
    
    NAME
    --------------------------------
    MYDB_PLAN
    MAILDB_PLAN
    BUGDB_PLAN
    

    3. Přidělování zdrojů veskrze profily

    Obsah

    3.1 Zprovoznění profilů

    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;

    Obsah

    3.2 Vytváření profilů

    Pro vztvoření profilu musíte mít práva CREATE PROFILE
    Příklad vytvoření profilu:

    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;
    
    Jako obvykle je zde syntaxí takřka stejný příkaz 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.

    Obsah

    3.3 Composite limits

    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:

    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;
    
    Což nastaví parametr cost na
    cost = (1 * CPU_PER_SESSION) + (50 * LOGICAL_READS_PER_SESSION) 
    

    Obsah

    3.4 Nahlížení profilů

    Pomocí příkazu :

    SELECT * FROM DBA_PROFILES
       ORDER BY PROFILE;