ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle Resource Manager概述

Oracle Resource Manager概述

原创 Linux操作系统 作者:keeptrying 时间:2012-05-08 21:46:47 0 删除 编辑

一、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/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 一点ASMM总结
请登录后发表评论 登录
全部评论

注册时间:2011-04-25

  • 博文量
    130
  • 访问量
    916125