Oracle Resource Manager概述

keeptrying發表於2012-05-08

一、Oracle Resource Manager存在的意義

 

1、如果資料庫的資源分配由作業系統決定,會遇到如下問題:

(1)       Excessive overhead過度的開銷

Excessive overhead results from operating system context switching OS 上下文切換)between Oracle Database server processes when the number of server processes is high.

(2)   Inefficient scheduling低效率的排程

The operating system deschedules database servers while they hold latches, which is inefficient.

(3)   Inappropriate allocation of resources不適當的資源分配

The operating system distributes resources equally among all active processes and cannot prioritize one task over another.

(4)   Inability to manager database-specific resourcessuch as parallel execution servers and active sessions

 

2Resource Manager允許資料庫控制硬體資源的分配,在多使用者併發執行不同優先順序的Job時,不同的session可以按照不同的優先順序對待,Resource Manager允許我們根據session的屬性將session分類到不同的groups,然後對不同的groups分配不同的資源。

使用Resource Manager可以做到如下:

(1)   保護某個session分配到最小的CPU資源,而不管系統的壓力和使用者的數量。

(2)   針對不同的使用者和應用分配不同比例的CPU時間。

(3)   限制使用者組成員任何操作的並行深度。

(4)   管理並行佇列中並行的執行順序,緊急應用的並行可以優先於其他低優先順序的並行。

(5)   限制group中使用者可以使用並行的數量,這樣可以確保所有可用的並行資源不會被分配到某一個group使用者。

(6)   建立active session poolActive session pool由同一個group中使用者session被允許併發active的最大數量組成。附加的session可以超過這個限制執行,當job佇列中斷後,可以指定超時時間。

(7)   通過如下方法管理和呼叫runaway session

1) 修改group可以消耗CPU資源的比率值。

2) 檢測session或者call是否超過了指定CPU或者I/O的限制。然後自動的中斷sessioncall,或切換其小於consumer group中指定的CPU資源數。

(8)   阻止優化器估算其執行時間超過指定限制的操作。

(9)   限制session可以被空閒的時間。

(10)  根據工作量的改變允許資料庫使用不同的resource plan。可以動態的修改這些resource plan。也可以在Scheduler中使用resource plan

 

二、Oracle Resource Manager的組成元素

 

Element

Description

Resource consumer group

A group of sessions that are grouped together based on resource requirements. The Resource Manager allocates resources to resource consumer groups, not to individual sessions.

Resource plan

A container for directives that specify how resources are allocated to resource consumer groups. You specify how the database allocates resources by activating a specific resource plan.

Resource plan directive

Associates a resource consumer group with a particular plan and specifies how resources are to be allocated to that resource consumer group.

 

1、 Resource Consumer Groups

1Resource Consumer Group是一個使用者session的集合,其根據session需要的程式進行歸類,當一個session建立之後,它就自動根據使用者指定的規則對映到對應的consumer group

2DBA也可以手工的切換session到不同的consumer group。簡言之,就是使用PL/SQL包來切換session到指定的consumer group

3)因為Resource Manager僅分配資源到一個consumer group,當一個session變成consumer group中的一員時,它的資源分配就由該consumer group決定。

4)在資料字典裡一直存在3個特定的consumer groups,它們不能被修改和刪除。

 

2、 Resource plans

Resource plan是預先定義好的,可以建立任意個resource plan,但是在同一時刻只有一個resource plan是啟用的。當resource plan是啟用時,它的每個子resource plan控制每個資源分配到不同的consumer group。每個plan必須 包含一個指令,其分配資源到OTHER_GROUPSconsumer groupOTHER_GROUPS適用於所有的session,即使不是當前啟用的plan

3、 Resource Plan Directive

Resource Manager根據當前active resource planResource Plan Directive的設定分配資源到consumer groupsResource PlanResource Plan Directive是父子關係,每個Resource Plan Directive只對應一個consumer group

 

三、管理Resource Manager的許可權

 

管理Resource Manager必須具有ADMINISTER_RESOURCE_MANAGER許可權,在DBArole裡已經包含了這個許可權。

通過DBMS_RESOURCE_MANAGER_PRIVS包來執行ADMINISTER_RESOURCE_MANAGER許可權的授予和撤銷。該包中兩個相關的procedures

Procedure

Description

GRANT_SYSTEM_PRIVILEGE

Grants the ADMINISTER_RESOURCE_MANAGER system privilege to a user or role.

REVOKE_SYSTEM_PRIVILEGE

Revokes the ADMINISTER_RESOURCE_MANAGER system privilege from a user or role.

 

如:授予TEST使用者ADMINISTER_RESOURCE_MANAGER許可權

SYS@ tsid > begin

  2  dbms_resource_manager_privs.grant_system_privilege(

  3  grantee_name =>'TEST',

  4  privilege_name =>'ADMINISTER_RESOURCE_MANAGER',

  5  admin_option =>FALSE);

  6  end;

  7  /

 

PL/SQL procedure successfully completed.

 

撤銷TEST使用者ADMINISTER_RESOURCE_MANAGER許可權

SYS@ tsid > begin

  2  dbms_resource_manager_privs.revoke_system_privilege(

  3  revokee_name =>'TEST',

  4  privilege_name =>'ADMINISTER_RESOURCE_MANAGER');

  5  end;

  6  /

 

PL/SQL procedure successfully completed.

 

該包中另外兩個procedures

GRANT_SWITCH_CONSUMER_GROUP

REVOKE_SWITCH_CONSUMER_GROUP

 

 

四、Resource Manager管理的資源型別

 

1、 CPU

2、 Degree of Parallelism Limit

可以限制同一個consumer group中最大的並行數,degree of parallelism是同一個操作的並行執行的數量,使用PARALLEL_DEGREE_LIMIT_P1指令來指定consumer group的並行限制。

Degree of parallelism limit僅對consumer group中的一個操作限制,其不限制同一個consumer group中所有錯做的並行度。但可以通過PARALLEL_DEGREE_LIMIT_P1PARALLEL_TARGET_PERCENTAGE指令屬性來實現該功能。

3、 Parallel Target Percentage

這個功能僅從oracle 11gR2開始使用!

如果一個consumer group使用了所有的並行,那麼當其他consumer group的高優先順序的並行就沒有parallel server來分配,可以通過限制特定consumer group的並行數來避免這個問題。

使用PARALLEL_TARGET_PERCENTAGE指令屬性可以指定consumer group可以使用最大parallel server pool的比率。

例如,假設總共的parallel server32,在初始化引數裡設定MY_GROUP consumer groupPARALLEL_SERVERS_TARGET50%,那麼該組group最大就只能使用16parallel servers

4、 Parallel Queue Timeout

這個功能從Oracle 11gR2以後才有!

當使用並行佇列時,如果資料庫沒有足夠的資源來執行並行,那麼並行就會進入佇列,直到有資源時才變成可用。但是存在一種情況,就是並行等待了很長的時間才執行,可以設定並行在佇列中的最長等待時間來避免這種問題。

5、 Active Session Pool with Queuing

可以控制單個consumer group中最大的併發的active sessions的數量。這個最大的數就是active session pool

6、 Automatic Consumer Group Switching

This methodenables you to control resource allocation by specifying criteria that, if met,causes the automatic switching of a session to a specified consumer group.Typically, this method is used to switch a session from a high-priorityconsumer group—one that receives a high proportion of system resources—to alower priority consumer group because that session exceeded the expectedresource consumption for a typical session in the group.

7、 Canceling SQL and Terminating Sessions

可以使用命令取消或中止long-runingsession

8、 Execution Time Limit

可以指定操作最大的執行時間,如果超過這個時間,操作將終止。

9、 Undo Pool

可以為每個consumer group指定undo poolundo pool控制總的undo數量。當總的undo生成量超過了這個限制,那麼當前的事務操作生成的undo會被中斷,只有undo pool空間足夠時,才可以執行。

10Idle Time Limit

    指定session空閒時間,當超過這個時間時,session被中斷。

 

 

五、

1、檢視Resource consumer group

SYS@ tsid > select consumer_group from dba_rsrc_consumer_groups;

 

CONSUMER_GROUP

------------------------------

OTHER_GROUPS

DEFAULT_CONSUMER_GROUP

SYS_GROUP

LOW_GROUP

AUTO_TASK_CONSUMER_GROUP

 

2、檢視Resource Plan

SYS@ tsid > select plan from dba_rsrc_plans;

 

PLAN

------------------------------

SYSTEM_PLAN

INTERNAL_PLAN

INTERNAL_QUIESCE

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25744374/viewspace-723083/,如需轉載,請註明出處,否則將追究法律責任。

相關文章