Oracle数据库资源管理

1.了解Resource Manager术语

Resource Manager的3个基本结构:资源使用者组、资源计划(和辅助计划)、资源计划向导。

使用数据库资源管理器可以帮助管理资源 (如 CPU 和还原空间) 在用户会话间的分配方式。继续执行以下步骤可以配置资源管理器:

使用者组 定义根据资源处理需求将用户会话分组的使用者组。资源计划将资源分配给使用者组。指定一些用户和角色, 他们可以在每个使用者组中开始会话, 或者将他们的会话切换到每个使用者组。

使用者组映射 定义使用者组映射规则, 此规则基于会话属性 (例如用户名, 服务名, 模块名等) 将用户会话映射到使用者组。要解决映射冲突, 请按映射规则优先级的顺序应用映射规则。

计划 定义资源计划, 其中包含指定将资源分配给使用者组方式的指令。例如, 对于每个计划, 需要指定分配给每个使用者组的 CPU 资源百分比。可以选择指定其他限制, 如使用者组中的会话可以执行或保持空闲的最大时间, 或者会话在自动切换到低优先级的使用者组之前消耗的 CPU 或 I/O 资源的最大量。

设置 查看当前活动的资源计划。激活资源计划。

性能统计信息 监视当前启用的资源计划的统计信息。按使用者组监视 CPU 和 I/O 的使用情况, 并按使用者组监视资源管理器为 CPU 执行的约束数。

2.了解Resource Manager分配方法

Resource Manager可以根据以下一个或多个度量单位分配资源:

CPU使用率

并行程度

活动会话数量

撤销空间

CPU时限

闲置时间限制

3.了解DEFAULT_PLAN

资源计划resource_manager_plan参数:

SQL> show parameter resource NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ resource_limit boolean FALSE resource_manager_cpu_allocation integer 2 resource_manager_plan string --设置resource_manager_plan为DEFAULT_PLAN SQL> alter system set resource_manager_plan = 'DEFAULT_PLAN'; System altered. SQL> show parameter resource NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ resource_limit boolean FALSE resource_manager_cpu_allocation integer 2 resource_manager_plan string DEFAULT_PLAN

如果未设置resource_manager_plan参数的值,则不在实例中执行资源管理。

4.新建资源计划

可以使用PL/SQL包“DBMS_RESOURCE_MANAGER”的CREATE_PLAN、UPDATE_PLAN和DELETE_PLAN来创建、更新和删除资源计划。

--为资源管理器会话创建等待区(必须要创建) exec DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA(); --新建资源计划,名称DEVELOPERS execute DBMS_RESOURCE_MANAGER.CREATE_PLAN - (Plan => 'DEVELOPERS', - Comment => 'Developers, in Development database'); 5.创建使用者组

新建两个使用者组:ONLINE_DEVELOPERS和BATCH_DEVELOPERS

--新建使用者组 ONLINE_DEVELOPERS exec DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP - (Consumer_Group => 'ONLINE_DEVELOPERS', - Comment => 'Online developers'); --新建使用者组 BATCH_DEVELOPERS exec DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP - (Consumer_Group => 'BATCH_DEVELOPERS', - Comment => 'Batch developers'); 6.了解资源分配方法

创建两个计划指导,以便将75%的CPU资源分配给ONLINE_DEVELOPERS组,25%的CPU资源分配给BATCH_DEVELOPERS组。
另外,将ONLINE_DEVELOPERS组并行性限制为12,将BATCH_DEVELOPERS组的并行性限制为6。

--ONLINE_DEVELOPERS exec dbms_resource_manager.create_plan_directive - (Plan => 'DEVELOPERS', - Group_or_subplan => 'ONLINE_DEVELOPERS', - Comment => 'Online developers', - Cpu_p1 => 75, - Cpu_p2 => 0, - Parallel_degree_limit_p1 => 12); --BATCH_DEVELOPERS exec dbms_resource_manager.create_plan_directive - (Plan => 'DEVELOPERS', - Group_or_subplan => 'BATCH_DEVELOPERS', - Comment => 'Batch developers', - Cpu_p1 => 25, - Cpu_p2 => 0, - Parallel_degree_limit_p1 => 6); --OTHER_GROUPS(计划中必须包含此组) exec dbms_resource_manager.create_plan_directive - (Plan => 'DEVELOPERS', - Group_or_subplan => 'OTHER_GROUPS', - Comment => 'Everyone else', - Cpu_p1 => 0, - Cpu_p2 => 100, - Parallel_degree_limit_p1 => 6); --验证是否有效 exec DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA(); --提交更改 exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA(); --清除更改 exec DBMS_RESOURCE_MANAGER.CLEAR_PENDING_AREA(); 7.分配使用者组

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/2e9a03a783d78fb1a90cb7487c3476ea.html