标签:done 管理 比较 other client blog dir 系统 second
1、什么是Database Resource Manager
2、database resource manager的作用是什么?
3、database resource manger如何创建
4、database resource manager应用场景是什么?
Simple View Of Resource Plan
. 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,但是同一时刻只能有一个Plan状态为Active(由初始化参数 resource_manager_plan 决定),关联多个 Resource Plan directive
. 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. Create Pending Area
All changes to the plan schema must be done within a pending area. The pending area can be thought of as a "scratch" area for plan schema changes.
所有关于 Resource Manager 组件创建和更改都必须在 Pending Area 中完成,文档说可以理解为一个“草稿区”
SQL> exec DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA
PL/SQL procedure successfully completed.
2. Create A Resource Planing
创建资源计划时需要注意的一点是如果 sub_plan 参数指定为 TRUE,那么这个计划只能作为子计划使用,并且不需要为 OTHER_GROUPS 创建 Plan Directive
SQL> BEGIN
2 DBMS_RESOURCE_MANAGER.CREATE_PLAN(
3 plan => ‘PLAN1‘,
4 comment => ‘Test Plan...‘,
5 sub_plan => FALSE); --默认值即为 FALSE
6 END;
7 /
PL/SQL procedure successfully completed.
3. Create Consumer Groups
根据实际需求创建所需要的用户组,需要注意的是虽然这一步并没有创建 OTHER_GROUPS 用户组,但是后面必须为 OTHER_GROUPS 用户组创建相对应的Plan Directive
SQL> BEGIN
2 DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
3 consumer_group => ‘GROUP_OLTP‘,
4 comment => ‘Group of OLTP USERS...‘,
5 mgmt_mth => ‘ROUND-ROBIN‘); --该用户组内各会话的CPU资源采取轮询的分配方法
6 END;
7 /
PL/SQL procedure successfully completed.
SQL> BEGIN
2 DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
3 consumer_group => ‘GROUP_OLAP‘,
4 comment => ‘Group of OLAP USERS...‘,
5 mgmt_mth => ‘ROUND-ROBIN‘);
6 END;
7 /
PL/SQL procedure successfully completed.
4. Map Sessions To Consumer Groups
根据会话的登录和运行属性建立该会话和资源用户组的映射关系,可以使用过程 SET_INITIAL_CONSUMER_GROUP 通过“Username”设置用户的初始用户资源组,该过程在11gR1被弃用后,改为使用过程 SET_CONSUMER_GROUP_MAPPING 通过“Session Attribute”来映射用户组。
这里所说的会话属性包括: oracle_user,client_os_user,client_program,client_machine,module_name ...
当会话的多个属性映射发生冲突时,会根据每个属性的优先级来决定最终映射关系,使用这个过程来调整属性的优先级:SET_CONSUMER_GROUP_MAPPING_PRI
SQL> BEGIN
2 DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(
3 attribute => ‘CLIENT_MACHINE‘,
4 value => ‘ASM‘, --将从“ASM”客户机发起的会话映射到“GROUP_OLAP”用户组
5 consumer_group => ‘GROUP_OLAP‘);
6 END;
7 /
PL/SQL procedure successfully completed.
SQL> BEGIN
2 DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(
3 attribute => ‘CLIENT_MACHINE‘,
4 value => ‘WORKGROUP\XIAO‘, --将从“WORKGROUP\XIAO”客户机发起的会话映射到“GROUP_OLTP”用户组
5 consumer_group => ‘GROUP_OLTP‘);
6 END;
7 /
PL/SQL procedure successfully completed.
5. Create Resource Plan Directives
针对会话映射到的每一个用户组创建资源计划指令,可以看做是数据库资源管理的控制核心。
这里可以控制的资源种类比较多:
a.CPU使用、
b.最大活跃会话数、
c.会话并行度、
d.会话最大空闲时间,
e.Undo使用大小等
SQL> BEGIN
2 DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
3 plan => ‘PLAN1‘, --将该Plan Directive 关联到 PLAN "Plan1"
4 group_or_subplan => ‘GROUP_OLAP‘, --可以指定用户组,也可以指定Sub Plan,和上一个参数构成了 Plan Diretive 的唯一属性
5 comment => ‘Directives for OLAP consumer group...‘,
6 active_sess_pool_p1 => 5, --最大活跃会话数,达到该限制后其他会话进入 Inactive session queue
7 queueing_p1 => 10, --在 Inactive session queue 的等待超时时间
8 parallel_degree_limit_p1 => 2, --最大并行度
9 switch_group => ‘KILL_SESSION‘, --在满足指定条件后,对会话所采取的操作
10 switch_time => 3, --执行时间限制,会话操作执行时间超过该值后,即被采取上一步的相应操作(second)
11 switch_estimate => FALSE, --如果设置为 TRUE,在操作执行前Oracle先估算执行时间以决定是否对其切换用户组
12 max_est_exec_time => 5, --最大估算执行时间,优化器对操作时间进行估算,如果超过该值则直接返回“ORA-07455”
13 undo_pool => NULL, --uncommited undo segments 限制(KB)
14 max_idle_time => 300, --会话最大空闲时间
15 max_idle_blocker_time => 3, --Blocker会话的最大空闲时间
16 mgmt_p1 => 30, --CPU使用限制(Level 1)
17 mgmt_p2 => 0); --CPU使用限制(Level 2)
18 END;
19 /
PL/SQL procedure successfully completed.
SQL> BEGIN
2 DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
3 plan => ‘PLAN1‘,
4 group_or_subplan => ‘GROUP_OLTP‘, --为“GROUP_OLTP”用户组创建指令计划
5 comment => ‘Directives for OLTP consumer group...‘,
6 active_sess_pool_p1 => 10,
7 switch_group => ‘CANCEL_SQL‘,
8 switch_time => 3,max_idle_time => 3,
9 mgmt_p1 => 60,
10 mgmt_p2 => 0);
11 END;
12 /
PL/SQL procedure successfully completed.
SQL> BEGIN
2 DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
3 plan => ‘PLAN1‘,
4 group_or_subplan => ‘OTHER_GROUPS‘, --为没有映射到以上用户组中的会话创建 Plan Directive
5 comment => ‘Directives for the other users group...‘,
6 parallel_degree_limit_p1 => 1,
7 mgmt_p1 => 0,
8 mgmt_p2 => 100); --CPU使用限制(Level 2 的100%,即 Level 1 分配剩下的10%)
9 END;
10 /
PL/SQL procedure successfully completed.
6. Validate & Submit Resource Plan
在对资源管理元素的创建及更改完成后执行校验并提交,如果出现逻辑上的错误会导致报错,比如:
. 没有定义 OTHER_GROUPS 用户组的 Plan Directive
. 一个 Plan 中各个 Plan Directive 的 mgmt_p1 或者 mgmt_p2 之和大于 100%等一些其他的错误
SQL> exec DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA()
PL/SQL procedure successfully completed.
SQL> exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA()
PL/SQL procedure successfully completed.
7. View The Database Resource Manager Elements
可以通过动态性能视图和数据字典查看,也可以通过EM的图形界面来查看
Consumer Groups:
Consumer Groups Mapping:
Resource Plan Directives:
至此,资源管理计划已经创建完成,修改初始化参数 resource_manager_plan 以启用新的资源管理计划,或者直接在EM控制台中将该计划的状态改为“Active”
附(动态性能视图及数据字典)
DBA_RSRC_CATEGORIES
DBA_RSRC_CONSUMER_GROUP_PRIVS
DBA_RSRC_CONSUMER_GROUPS
DBA_RSRC_GROUP_MAPPINGS
DBA_RSRC_IO_CALIBRATE
DBA_RSRC_MANAGER_SYSTEM_PRIVS
DBA_RSRC_MAPPING_PRIORITY
DBA_RSRC_PLAN_DIRECTIVES
DBA_RSRC_PLANS
V$RSRC_CONS_GROUP_HISTORY
V$RSRC_CONSUMER_GROUP
V$RSRC_CONSUMER_GROUP_CPU_MTH
V$RSRC_PLAN
V$RSRC_PLAN_CPU_MTH
V$RSRC_PLAN_HISTORY
V$RSRC_SESSION_INFO
V$RSRCMGRMETRIC
V$RSRCMGRMETRIC_HISTORY
2、关闭数据库DRM功能。
A、方案1:彻底关闭需要修改_gc_policy_time=0参数,但是需要重启数据库。
Oracle之Database Resource Manager和Database resource group
标签:done 管理 比较 other client blog dir 系统 second
原文地址:https://www.cnblogs.com/dayu-liu/p/11073678.html