Oracle资源计划三篇

2024-09-02

Oracle资源计划 篇1

在企业信息化过程中, 数据库是支撑企业底层数据服务的关键, 如何为不同优先级的数据库用户分配不等的系统资源, 提升数据库应用服务的Qo S, 是目前研究的一大热点。

许多计算机系统都实现了为每个计算机用户组根据自身的需要使用不同标准的服务级别, 然而如果系统整体资源压力很大, 则很可能无法为所有用户提供期望的服务级别。但如果能够指定某种资源计划, 则可以保证为特定优先级的用户组提供特定的服务级别。

在大型机环境中, 操作系统自身会为各种任务分配资源。事务处理监视器能够确保高优先级作业获取所需资源, 实现高优先级作业优先调度[1]。但如果使用操作系统来分配数据库服务器资源, 将面临过多的资源开销、低效的调度、资源分配不合理和无法管理数据库特有资源等问题。

Oracle的资源管理器 (Database Resource Manager, DBRM) 将大型机中的资源管理的优点引入到了所有支持Oracle的平台, 把资源管理从操作系统层面转移到数据库应用层面, 同时可以管理数据库特有的资源和服务器资源。由于Oracle应用是便携并且跨平台的, 因此Oracle资源管理实现了平台无关性, 适合对各类数据库应用进行资源管理。

但DBRM用于资源管理的资源计划只是固定的计划值, 需要事先设置, 不够灵活, 设置的值也只是经验值, 无法准确描述不同优先级用户的实际资源需求。如果用户的计划值设置过大, 可能导致该用户资源浪费和其他用户的资源缺乏, 设置过小又可能导致该用户的资源不足以及其他用户资源过剩。且用户需要的系统资源是随着用户处理事务的进行而不断变化的, 固定的资源计划不能很好地适应实际情况。

本文提出了Oracle动态资源管理方案, 在DBRM实现的固定资源计划的基础上, 通过使用Oracle基于时间的作业调度, 计算VIP用户会话的实时CPU使用率, 并依据自定义的资源计划算法, 实现资源计划中的CPU使用率计划值随VIP用户实际使用率动态更新, 既保证了VIP用户优先使用系统资源, 同时又减少了资源浪费, 提高了Oracle系统的资源利用率。

1 Oracle资源管理相关技术

1.1 DBRM固定资源计划

在某些数据库环境中, 可能存在多个用户同时请求数据库服务, 并且所要完成任务的优先级不同, 需要数据库管理员 (Database Administrator, DBA) 区别对待这些会话请求。

DBRM是Oracle提供的管理数据库资源的部件, 可以根据各个应用会话属性进行分组, 然后为每组分配不同的资源, 最大化提高数据库应用性能。DBRM主要由资源用户组 (Resource Consumer Group) 、资源计划 (Resource Plan) 和资源计划指令 (Resource Plan Directive) 3个部分组成。具有相同资源请求的会话可以划分为一个资源用户组, DBRM分配资源是以资源用户组为单位的, 而非单个会话。DBA可以自定义多个资源计划, 根据资源计划指令来具体分配资源。资源计划指令指定了资源计划和资源用户组之间的映射关系, 表示某种资源 (如CPU时间) 在不同用户组 (如VIP用户组和普通用户组) 之间是如何分配的。资源计划和资源计划指令是一对多的关系。

资源计划指令除了给资源用户组分配资源外, 还可以为其他资源计划分配资源, 被分配资源的计划称为子资源计划。Oracle资源计划如图1所示, 实现了CPU资源的二级分配。

DBRM使用DBMS_RESOURCE_MANAGER包和DBMS_RESOURCE_MANAGER_PRIVS包来实现资源计划。其中DBMS_RESOURCE_MANAGER包用于建立资源用户组、资源计划、资源分配方法等;而DBMS_RESOURCE_MANAGER_PRIVS包主要是对用户资源管理的权限进行控制。本文仅使用了DBMS_RESOURCE_MANAGER包, 权限管理不在本文研究范围内。

在资源计划中, 有8个CPU优先级, 级别1为最高, 级别8为最低。值得注意的是, DBRM的资源计划只在系统CPU使用率达到100%时出现资源争用的情况下才会生效。

1.2 Oracle任务调度

Oracle任务调度有基于时间的任务调度和基于事件触发的任务调度, 本文仅研究基于时间的任务调度。Oracle基于时间的任务调度是指某一执行程序在特定的时间被周期性地执行。DBA在日常运维中需要对数据库的运行状态、资源使用和备份情况等进行监控和检查[2], Oracle的任务调度在DBA的日常运维工作中非常实用, 如可以借助Oracle内置的任务调度自动实现每周一次的数据备份等。

Job是指数据库调度的任务, 一个基本的Job由Program和Schedule组成, Program是指周期性执行的程序, 可以是PL/SQL匿名块、存储过程、函数、包, 也可以是操作系统的可执行脚本和外部程序等[3], Schedule指的是调度Program的周期。创建Job的方式有多种, 可以分别创建Program和Schedule, 然后再以此创建Job, 也可以直接创建Job, 创建的Job可以在Oracle Enterprise Management或者其他工具中查看运行情况。本文创建了一个每隔15 s执行check_CPU这个存储过程的Job, 在PL/SQL Developer中查看到的Job运行情况如图2所示。

2 Oracle动态资源管理实现

DBRM资源计划由于其固定性, 没有实现动态更新, 在需要保证高优先级用户资源占用率的场合下, 难以满足需求, 资源分配不合理。本文在动态资源计划的基础上实现了Oracle动态资源管理方案, 动态资源计划的实现包含建立初始资源计划、建立定时检测CPU任务和调度算法实现。

2.1 建立初始资源计划

Toad是一款高效的Oracle应用开发和管理工具, 其中的DBA模块可以帮助DBA完成许多日常管理工作[4]。建立资源计划时首先使用Toad建立用户到资源用户组 (Resource Consumer Group) 的映射。VIP用户映射到VIP_GRP组, 普通用户映射到NORMAL_GRP组, 然后使用Toad建立初始资源计划PLAN1。初始资源计划如图3所示。

初始时VIP_GRP组的用户分配60%的CPU资源, NORMAL_GRP组的用户分配40%的CPU资源。建立资源计划后, 激活PLAN1。

2.2 建立定时检测CPU任务

使用Oracle的dbms_Scheduler包编程实现基于时间的任务调度, 每隔15 s采集系统CPU使用率, 关键代码如下:

2.3 计算Oracle会话的CPU使用率

Oracle中没有直接的方法获得Oracle会话的CPU使用率, 文献[5]中提及查询占用CPU最高的SQL语句, 但没有计算会话CPU百分比的方法。本文通过分别计算采样间隔内会话CPU时间和系统CPU时间, 计算出Oracle会话的CPU使用率。

2.3.1 计算会话CPU时间

Oracle中v$sessmetric视图记录了Oracle会话的相关指标, 可以查询会话的CPU时间, 脚本如下:

该脚本可查看VIP用户会话的CPU时间, v$sessmetric相关字段有:BEGIN_TIME, 记录会话指标的开始时间;END_TIME, 记录会话指标的结束时间;INTSIZE, 记录会话指标的时间间隔, 本文中为固定值15 s;SESSION_ID, 为会话ID;CPU字段表示CPU使用率。

2.3.2 计算系统CPU时间

系统的CPU时间可以从视图v$osstat中获得, CPU时间=CPU空闲时间+CPU繁忙时间, 脚本如下:

2.3.3 计算会话CPU使用率

前文计算了15 s周期的会话CPU时间CPU_session, 以及系统CPU时间的实时累计值CPU_total_tx, 因此, 在15 s周期内的会话CPU使用率CPU_ratio计算如下:

式中, CPU_total_t2表示15 s周期结束时系统CPU时间累计值, CPU_total_t1表示15 s周期开始时系统CPU时间累计值。

2.4 算法实现

利用PL/SQL Developer开发程序包实现动态资源管理的算法, 当检测到VIP用户的CPU使用率满足资源计划更新条件时, 就会动态更新资源计划, 伪代码如下:

其中cpu_avg表示VIP用户实际CPU使用率的平均值, cpu_plan_before表示修改前资源计划中VIP组用户的CPU使用上限, cpu_plan_after表示修改后的资源计划中VIP组用户的CPU使用上限。依据运维经验, 本文把触发修改资源计划的条件定为向上75%和向下50%。

动态资源管理流程如图4所示。

3 Oracle动态资源管理测试

本文对实现的Oracle动态资源管理进行有效性测试和实际对比测试。测试环境为Oracle 11g R2数据库;数据库用户包括XIAOBINGO (DBA) 、VIP (隶属VIP_GRP组) 和NORMAL (隶属NORMAL_GRP组) ;资源计划为PLAN1;有效性测试脚本dead.sql和对比测试脚本update.sql。

3.1 动态资源管理有效性测试

1) 配置初始资源计划;

2) NORMAL用户并行执行多个有效性测试脚本dead.sql, 其中dead.sql脚本是一段消耗系统CPU资源的存储过程, 使得系统CPU消耗达到100%;

3) 启动自定义的动态资源管理包;

4) VIP用户开始执行dead.sql脚本, 通过增加和减少执行脚本的数量, 来模拟VIP用户请求的CPU使用率上升和下降。

动态资源管理有效性测试如图5所示。

可以看出, 当VIP用户的实际CPU使用率上升超过计划值的75%时, 资源计划会动态修改, 提高计划值使得实际值为计划值的60%。同样, 当VIP用户的实际CPU使用率减少到计划值的50%时, 资源计划动态修改, 降低计划值使得实际值为计划值的60%。而在50%~75%的窗口内, 资源计划不会更改, 这也是实际CPU消耗合理的窗口。资源计划实现了根据VIP用户的实际CPU消耗而动态更新, 在保证VIP用户的资源使用的前提下, 提高了系统整体CPU使用率。

3.2 动态资源管理对比测试

本文设置了CPU足够、CPU满负荷运行资源被争用、CPU满负荷运行资源被争用且启用固定资源计划、CPU满负荷运行资源被争用且启用动态资源计划的条件下的4种情形。在4种情形中分别运行对比测试脚本update.sql, 其中update.sql脚本是一段对表执行2万条update操作的DML语句, 即VIP用户和NORMAL用户分别执行2万次update操作, 赋予VIP用户操作用时权重0.7, NORMAL用户操作用时权重0.3, 在4种情形下分别计算操作平均用时。

1) 在系统CPU足够的的理想条件, 不启用资源计划, VIP用户和NORMAL用户同时执行update.sql脚本。

2) 在CPU满负荷运行资源被争用的情况下, 使系统CPU使用率达100%, 不启用资源计划, VIP用户和NORMAL用户同时执行update.sql脚本, 开始争用CPU资源。

3) 在CPU满负荷运行资源被争用且启用固定资源计划的情况下, 在情形2的基础上, 启用资源计划, VIP计划CPU占比10%, NORMAL资源计划占比90%, VIP用户和NORMAL用户同时执行update.sql脚本。

4) 在CPU满负荷运行资源被争用且启用动态资源计划情况下, 在情形2的基础上, 启用动态资源管理, VIP初始计划CPU占比10%, NORMAL初始资源计划占比90%, VIP用户和NORMAL用户同时执行update.sql脚本。

动态资源管理效果对比如图6所示。

图6动态资源管理效果对比Fig.6 The contrast of dynamic resource management effect

从对比测试结果可以看出, 情形4启用了动态资源管理计划, 系统整体的事务操作平均耗时相比资源争用情况和固定资源计划有了大幅减少, 距离理想情况的差距也较小, 证明了动态资源管理方案在实际应用中的高效性。

4 结语

本文研究了Oracle资源计划, 并在此基础上提出并实现了Oracle动态资源管理方案, 实现了将系统CPU资源按优先级动态分配, 在资源争用的情况下, 能够保证优先级高的用户占用足够且合理的CPU资源, 有限的CPU资源不会限制高优先级用户, 同时普通用户也能占用合理的CPU资源, 系统整体资源利用率得到提高。

本文实现的Oracle动态资源管理方案目前还没有实现对优先级的进一步细分, 也没有对活动会话数等其他资源进行管理, 这些将是下一步将要开展的研究工作。

摘要:为保证高优先级Oracle用户优先使用系统资源, 同时提高整体资源利用率, 需要对Oracle用户使用的资源进行合理化管理。文章提出了一种动态资源管理策略, 通过实时监测高优先级用户的实时CPU使用情况, 动态调整资源分配计划, 在确保高优先级用户能够获取充足资源的前提下, 使得系统总体资源分配最优, 从而提高系统资源利用率, 并节省数据库运维成本。Oracle动态资源管理方案在资源受限环境中表现出了优势, 对运维自动化和企业信息化发展具有很好的借鉴价值。

关键词:资源最优,Oracle资源计划,动态资源管理

参考文献

[1]江志华, 齐文静.常用作业调度算法的分析与评价[J].乐山师范学院学报, 2008, 23 (12) :57–59.

[2]张墨晖.浅谈Oracle数据库管理[J].信息系统工程, 2013 (10) :53–54.

[3]孙江波, 赵艳玲.Oracle 10g的任务调度[J].武汉工业学院学报, 2006, 25 (4) :57–58.SUN Jiang-bo, ZHAO Yan-ling.The task scheduler of Oracle10g[J].Journal of Wuhan Polytechnic University, 2006, 25 (4) :57–58.

[4]董振.浅谈基于第三方工具的Excel到Oracle数据库之间的数据导入导出方法[J].黑龙江科技信息, 2012 (24) :111.

Oracle资源计划 篇2

甲骨文公司亚太区人力资源管理总监叶天禄日前在接受记者采访时表示:“当前,在中国人力资源管理市场中,大型企业迫切需要对HR进行集中化和标准化管理,以符合经常变更的劳动法,同时要求密集型的蓝领工人向知识驱动的人才型工人转变,他们还面临管理知识层次劳动力的挑战。随着这些需求和挑战的出现,HR管理人员的价值开始逐渐体现,并获得企业董事会的认可。”

制造业普遍处于一种跨地域、国家的生产格局,不仅要面对多语言文化、灵活快速的人才招聘与培养,还要满足跨地域、国家的人力资源法令要求和薪酬规范,同时要建立符合集团规范但是又可保留各自公司特色的集团和事业群的分权管理模式。在这些业务活动中,在全球范围内根据订单需求,快速调整生产线或扩充产能,以及全球劳动力成本控制,对制造业显得尤其重要。叶天禄针对制造业行业的人力资源管理特点作了详细介绍,包括全球化的生产基地布局、全球化人才获取和培养需求、各项人力资源成本指标分析和汇总、中央集权和地方分权的矩阵式管理模式等方面。

“很显然,解决所有这些问题的焦点都落在如何充分利用和发挥人力资本管理软件的作用上。” 叶天禄表示,针对中国企业人力资本管理面临的众多挑战,Oracle人力资本管理(HCM)解决方案以全球核心业务为中心,将商业智能功能渗透到劳动力管理、劳动力服务交付、企业级人才管理三层,从而帮助中国企业实现了卓越的管理、服务和绩效。

oracle学习计划 篇3

这些都是需要经常翻阅的书,随时用,随时翻阅;如果英文阅读不方便,可以到书店随便翻翻,浏览目录和内容,如果觉得适合自己的理解或有帮助,就是不错的书。

2、一本讲解数据库管理的书;内容涉及可能多,这本书要求知道数据库管理涉及那些方面;

3、一本详细讲解rman如何使用的书

oracle 9irman 备份与恢复技术

robert g.freeman 著,梁志敏 蔡建译

4、一本讲解如何优化调优的书

oracle9i statspack 高性能调整 工业出版社

donald k.burleson 著,袁勤勇等编

oracle wait interface 性能诊断与调整实践指南

richmond shee 等著,高锰 江仁容译,清华出版社

高级阶段

5、一本如何进一步优化sql语句的书

6、一本如何高效构建数据库的书

7、一本数据库高效编程的书

oracle高效设计和oracle 高效编程都是thomas kyte著,

上一篇:自考教育下一篇:纸质档案的修复技术