oracle resource manager 是对数据库包括主机资源的再分配
二. 两个软件包
dbms_resource_manager
dbms_resource_manager_privs
示例:
dbms_resource_manager.create_pending_area();
创建一个草稿区
DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_RESOURCE
建消费组
dbms_resource_manage.create_plan ()
创建计划
也可以利用
dbms_resource_manage.create_simple_plan 创建一个简单计划
例如
oadb
--------------------
| | |
sales组 market组 develop组
60%cpu 20%cpu 20%
dbms_resource_manager.create_simple_resource(
simple_plan =>'oadb_plan',
consumer_group1=>'sales',group1_cpu=>60,
consumer_group2=>'market',group1_cpu=>20,
consumer_group3=>'develop',group1_cpu=>20
)
就可以自动创建一个简单资源计划
三 资源分配
利用dbms_resource_manager.create_plan_directive 可以指定各个组的资源的分配,包括session_pool,cpu,并行度, undo pool ,切换组 等信息
1.DBA 可以为每个组设定active session pool,每个cousumer group 同时并发的session 数量,如果超过 了这个数量则会自动进行排队。
active session pool parameter:
active_sess_pool_p1 :
该consumer group 的并发session 上限 default 1000000
queueing_p1:
session 在队列中等待的时间上限,超过该时间则会自动cancel. default 1000000 秒
2. oracle resource manager 可以评估事务最大执行时间,可以设定max_est_exec_time ,如果resource manager 评估的时间超过了这个时间,系统将不会执行,避免占用过多的系统资源。
3. automotic consumer group switch :
directive 参数:
switch_group : group switch to ,default is null.
swtich_time : active time 活动时间,过了这个时间就会自动切换到其他组中,default 1000000
swtich_estimate : true-> oracle 使用在切换前的评估执行时间,如果评估时间大于switch_time ,则直接切换,否则就是达到了switch_time 后才进行切换。 DEFAUL : FALSE
4. undo pool 的限额
限制某个consumer group 的undo size : 如果大于的话,则会阻止DML 的执行
default :1000000kB
Automatic Consu