Oracle资源管理器
来源:互联网 发布:sql清除两天前的数据 编辑:程序博客网 时间:2024/06/05 09:25
Oracle资源管理器
Oracle资源管理器简介
•Oracle DBRM帮你处理哪些问题
•Oracle DBRM是怎样处理这些问题的
•Oracle DBRM包含的内容
•Oracle DBRM资源分配方法
•Oracle DBRM的权限管理
Oracle DBRM帮你处理哪些问题
•过多的资源开销
当服务器进程数很多时,操作系统进程和数据库服务进程间的来回切换会导致CPU占用率或内存使用率高。
•低效的调度
操作系统调度数据库服务时占用寄存器,这样做效率很低。
•资源分配的不合理
操作系统平均分配系统资源给活动的进程(对数据库进程来说),不能判断它们的优先级高低。
•不能管理数据库特有的资源,例如:并行执行的服务数和活动的会话数。
Oracle RMDB是如何解决这些问题的
Oracle DBRM的具体功能:
•DBRM可以在系统启动时,限制某些会话请求只分配到最少的进程资源和用户使用上限。
•为不同的用户或应用分配不同的CPU时间。在一个数据仓库应用中,ROLAP(relational online analyticalprocessing)应用分配到的比例就应该比批处理任务高。
•限制同一组内用户对数据库操作的并行度。
•建立一个活动的会话池。会话池由一组用户活动会话组成,对某一组用户来说,同一时间活动的会话数有特别的数量上限。如果会话池满了,新的会话请求会被放入等待队列,而且你还可以设置一个时间上限,超过这个上限,等待队列会被停止。会话池限制了同一时间活动的会话请求数量,保证了活动的会话请求更快的完成任务。
•管理长时间未响应的会话或请求,这些会话或请求往往占用了很多的CPU或I/O资源。这些会话能被自动的结束掉,或者将它们换到其他低级的组去。
•优化器会估算请求的运行时间,如果超出了某个显示,DBRM会阻止它的请求。
•限制一个会话的空闲等待时间。
•根据不同的资源分配需求,配置不同的模式。你可以动态的改变这些模式,例如,从白天运行模式变到夜间运行模式,而不用重启数据库服务。你还可以通过Oracle调度器来管理模式的改变。详细内容请见:Chapter 26, "Oracle Scheduler Concepts"。
Oracle DBRM的组成元素
下表介绍了Oracle RDMB的组成元素。
元素
资源使用组
资源计划
资源计划指令
资源使用组
•SYS_GROUP
•DEFAULT_CONSUMER_GROUP
•OTHER_GROUP
资源计划指令
资源计划
子资源计划
DBRM管理的内容
CPU Time
Active Session Pool WithQueuing
Degree Of Parallelism Limit
Automatic Consumer GroupSwitching
Cancelling SQL and TerminatingSessions
Excution Time Limit
Undo Pool
Idle Time Limit
================================================================
oracle 资源管理器
一、资源管理器(DBRM)由三个要素组成:
资源消费群(resource_consumer_group)
资源计划(resource_plan)
资源计划指令(resource_plan_directive)
执行与DBRM有关的操作,必须具有 administer_resource_manager 系统权限。
二、未决域(pending area)
DBRM的三个要素都必须创建在未决域中,然后提交。
1、创建未决域
exec dbms_resource_manager.create_pending_area;
2、验证未决域
exec dbms_resource_manager.validate_pending_area;
验证域中的内容是否合法。
3、清除未决域
exec dbms_resource_manager.clear_pending_area;
执行此命令后,未决域以及未决域中的内容一起被删除。
4、提交未决域
exec dbms_resource_manager.submit_pending_area;
执行此命令后,相当于执行了验证、提交、清除三个命令。未决域中的内容会被存储在数据字典中,等待启用。
三、资源消费群
一个用户可以隶属于多个消费群,但一个会话同一时间只能隶属于一个消费群。
ORACLE 已经预定义了4个消费群:
other_groups :当前的资源计划中没有明确指定资源分配所有消费群。任何一个资源计划中都必须包含此群。
sys_group 和 low_group :用于执行系统计划的消费群。
1、创建、更新、删除消费群
exec dbms_resource_manager.create_cosumer_group('群名','注释');
更新:
exec dbms_resource_manager.update_consumer_group('群名','注释');
删除:
exec dbms_resource_manager.delete_consumer_group('群名');
执行此命令后,隶属于此群的用户和会话将自动转到 default_consumer_group.
可以基于会话的属性将会话动态分配给消费群,成为消费群映射。
(1)设定映射:
dbms_resource_manager.set_consumer_group_mapping(
attribute => oracle_user,
value => 'user1,
consumer_group => 'low_group');
如上,当会话的oracle用户属性值为user1时,就将之分配给消费群low_group。
(2)设定映射优先权:
由于可能会出现某会话的两个属性分别满足两个不同的映射规则,那么该服从哪个规则呢?——可以设定各个属性的优先权,服从优先级高的属性。
dbms_resource_manager.set_mapping_priority(
oracle_user => 1,
client_os_user => 2);
(3)动态转换会话的消费群
dbms_resource_manager.switch_consumer_group_for_sess(
session_id => '56',
session_serial => '106',
consumer_group => 'low_group');
基于会话所属的用户转换消费群:(将用户下的所有会话转换消费群)
dbms_resource_manager.switch_consumer_group_for_user(
user => 'user1',
consumer_group => 'low_group');
用户转换自己当前会话的消费群:(使用 dbms_session包)
dbms_session.switch_current_consumer_group(
new_consumer_group => 'low_group');
转换自己当前会话的消费群需要特定权限:
dbms_resource_manager_privs.grant_switch_consumer_group(
grantee_name => 'user1',
consumer_group => 'low_group',
grant_option => 'false');
撤销此权限:
dbms_resource_manager_privs.revoke_switch_consumer_group(
grantee_name => 'user1',
consumer_group => 'low_group');
四、资源计划
分为简单资源计划和复杂资源计划。
1、简单资源计划
有如下特点:
(1)三要素在一个过程中定义。
(2)只能分配cpu资源。
(3)只能使用emphasis方式分配cpu资源(即百分比)。
(4)分配的消费群最大数为8个。
创建:
dbms_resource_manager.create_simple_plan(
simple_plan => '计划名',
consumer_group1 => '消费群1',
group1_cpu => 50,
consumer_group2 => '消费群2',
group2_cpu => 50);
2、复杂资源计划
特点:
(1)三要素必须单独创建。
(2)可以嵌套子计划。
创建:
dbms_resource_manager.create_plan(
plan => '计划名',
comment => '注释');
3、修改资源计划:
dbms_resource_manager.update_plan(
plan => '计划名',
new_属性 => '新值');
4、删除资源计划:
dbms_resource_manager.delete_plan('计划名');
或
dbms_resource_manager.delete_plan_cascade('计划名');
加上cascade参数,删除计划内的要素。
五、计划指令
dbms_resource_manager.create_plan_directive(
plan => '计划名',
group_or_subplan => '消费群或子计划',
资源限制参数);
注:可以为子计划创建指令,但只能分配cpu资源。
更新:
dbms_resource_manager.update_plan_directive(
两个必需参数,
new_属性 => '新值');
删除:
dbms_resource_manager.delete_plan_directive(
两个必需参数);
- Oracle资源管理器
- Oracle资源管理器
- oracle资源管理器的使用
- 资源管理器
- 资源管理器
- 资源管理器
- 资源管理器
- 数据库资源管理器(Oracle Database Resource Manager)
- Oracle资源管理器在HIS系统中的应用
- 数据库资源管理器(Oracle Database Resource Manager)
- Oracle资源管理器在HIS系统中的应用
- Oracle Study 案例--数据库资源管理器(Oracle Database Resource Manager)
- Oracle 11g New 资源管理器:新增的EM 界面
- c#资源管理器
- 资源管理器源码
- Java资源管理器
- 资源管理器 小结
- //刷新资源管理器
- 构造器模式构造对象
- oracle 11g 自动内存管理(其二)
- oracle 11g 自动内存管理(其三)
- oracle 10g:自动共享内存管理
- Oracle 11g R1中资源管…
- Oracle资源管理器
- Oracle的NLS设置
- oracle purge recyclebi…
- 理解RESTful架构
- oracle闪回技术
- Java获取当前路径
- db_block_checking和db_block_chec…
- Oracle MTTR( FAST_STAR…
- 参数FAST_START_MTTR_TARGET