技术开发 频道

Oracle 11g R1中资源管理器增强

  每会话I/O限制

  在Oracle之前的版本中,资源组自动切换完全基于单个会话的时间或单个调用的时间,Oracle 11g现在可以基于I/O阀值(最大请求数或M字节)进行资源组自动切换,新的阀值通过CREATE_PLAN_DIRECTIVE存储过程执行,其中包含了大量的改变。

  (1) CPU_P1-CPU_P8参数已经废弃,改为使用MGMT_P1-MGMT_P8参数。

  (2) SWITCH_TIME_IN_CALL参数已被汰,换作了SWITCH_FOR_CALL参数。

  (3) SWITCH_IO_MEGABYTES和SWITCH_IO_REQS参数现在已经可用,此外还有SWITCH_TIME参数,这三个参数默认为NULL,意味着无限制。

  新的I/O参数意味着可以切换资源组了,可以基于消耗时间、I/O请求和I/O数量的任何组合来取消SQL或杀死会话,下面的例子显示如果消耗时间超过120秒、I/O请求数量超过5000或I/O请求超过1024M,会将当前会话从资源消耗组oltp_group切换到batch_group组。

BEGIN

  DBMS_RESOURCE_MANAGER.create_plan_directive (

  
plan => 'my_plan',

  group_or_subplan
=> 'oltp_group',

  comment
=> 'OLTP Group',

  mgmt_p1
=> 70,

  switch_group
=> 'batch_group',

  switch_time
=> 120,

  switch_io_reqs
=> 5000,

  switch_io_megabytes
=> 1024,

  switch_for_call
=> TRUE);

  
END;

  
/

  下面的例子显示如果I/O资源消耗超过了4096M,会话将会被杀掉。 

BEGIN

  DBMS_RESOURCE_MANAGER.create_plan_directive (

  
plan => 'my_plan',

  group_or_subplan
=> 'oltp_group',

  comment
=> 'OLTP Group',

  mgmt_p1
=> 70,

  switch_group
=> 'KILL_SESSION',

  switch_io_megabytes
=> 4096);

  
END;

  
/

  AWR中的资源管理器统计

  新DBA_HIST_RSRC_PLAN和DBA_HIST_RSRC_CONSUMER_GROUP视图已加入到V$ RSRC_PLAN_HISTORY和V$RSRC_CONS_GROUP_HISTORY视图中,提供了一个历史数据的查看。

  V$RSRCMGRMETRIC_HISTORY视图显示取自V$RSRCMGRMETRIC视图的一个小时的数据。

  在http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/dbrm011.htm#ADMIN11916有完整的资源管理视图介绍。

0
相关文章