如数据库管理员现在需要让Oracle数据库系统进行自我监视。当服务器的CPU使用率达到多少的时候,自动向数据库管理员报警;或者到表空间的使用量达到全部***容量的90%时自动提醒数据库管理员等等。这些功能对于数据库管理员来说,肯定非常的实用。在Oracle数据库系统的企业管理器中提供了多种方式帮助管理员监视Oracle应用环境。在每个监视主机上的Oracle管理代理能够监视主机上所有目标的状态、性能和健康情况。如故目标对象发生故障或者性能度达到预警阀值,数据库系统就会生成预警,并通过一定的渠道告诉给数据库管理员。可见这个数据库系统的自我监视功能,可以代替数据库管理员的眼睛。
但是,这个自我监视功能要起作用的话,则离不开度量基线。度量基线就是一个技术指标,告诉企业管理器,当某个指标达到这个度量基线或者超过多少时,执行某项动作。所以,度量基线的管理对于数据库系统的自我监视功能非常关键。如果这个度量基线设置的高了,那么就起不到监视的作用。等到系统报警时,可能数据库已经崩溃掉了。如果这个度量基线设置的比较低,那么数据库会频繁的报无效的警。反而会因为太过于灵敏而给数据库管理员造成不必要的麻烦。所以度量基线的设置对于Oracle数据库来说非常的关键。
一、 度量基线设置的基本步骤
设置度量基线其实不是很难。只需要简单几个步骤就可以完成度量基线的设置。其难点在于如何设置才是合理的。下面笔者就结合度量基线设置的内容来谈谈怎么设置一个合理的度量基线。
进入Oracle的企业管理器,打开创建度量基线的页签。在这个页签上,就可以来设置度量基线的所有内容。然后数据库系统会自动根据这里的设置来计算阀值。在创建度量基线时,选择目标性能在典型工作量下处于克接受范围内的日期和时间段,这是建立一个合理的度量基线的基本准则。具体的来说,要设置一个度量基线,需要设置一下具体的参数。
一是度量基线的名称。由于数据库可以同时监视多个数据库对象以及Oracle应用环境,为此需要给度量基线取一个合适的名字。这对于数据库管理员后续的维护具有很重要的意义。做好在基线的名称中,能够体现所监控对象的名字。如此数据库管理员就可以一目了然的知道这个度量基线主要用来监控什么对象的。另外,数据库管理员还可以对某个对象的不同时刻的性能进行监视。如可能晚上12点到2点主要用来进行数据库备份,那么就可以设置一个基线来监视此时的作业。帮助管理员判断数据库备份作业发生时的Oracle应用环境。此时,在定义度量基线名字的时候,***能够包含时间信息。这些建议都可以提高度量基线名字的可读性。
二、设置“一天中的小时”
笔者个人认为,这个参数很关键。如果管理员选择了“一天中的小时”这个参数,则用户度量基线的结果数值是前几个小时内的累积值。这在数据库测试的时候非常有用。如用户在数据库设计的时候,可能在某个时段内设计了一些自动化作业。数据库管理员需要测试一下这些作业发生时,会否触发系统报警作业。此时,数据库管理员就可以设置这个参数。如管理员选择的一天中的小时数设置为12。则数据库系统就会采用上午10点到11点之间的数据作为度量的基础。如果这个一个小时内的度量平均值超过了用户定义的百分比,则系统就会报警。故灵活设置这个参数,可以帮助管理员及时了解某个特定时段或者某个特定作业的数据库性能。在测量触发器等Oracle子程序的性能对于数据库的影响,非常有作用。
三、设置警告的百分比或者严重百分比
让系统在没达到极限值之前报警还是超过了一定的比例之后再报警呢。这需要数据库管理员根据实际情况来设置这个参数。如某个用户的表空间容量可能为10G。当数据库管员监视这个对象,把这个对象的基线置设置为10G之后,那么管理员肯定不希望其使用两已经达到10G的时候再来报警。此时,数据库系统 已经因为表空间达到***限度而发生了数据丢失的情况。管理员希望当表空间的使用量达到90%时就给管理员报警。让管理员能够提早介入,从而防止意外的损失。为此,可以通过度量数据的下限值与上限值来定义。在度量数据表中,有下限值和上限值两个文本框。在这两个文本框中填入数据之后,系统便可以根据度量基线值使用这些百分比来计算建议的度量阀置。注意,这里需要输入百分比的值。如要设置低于基线值20%的时候,发生报警时,就输入20即可。不用输入百分号。
在度量基线值设置过程中,这个百分比是最有技巧的地方。因为其直接关系到在什么时候触发某个报警作业。这个值到底设置为多少比较合适,往往是公说公有理、婆说婆有理,没有一个标准的答案。笔者认为,这需要根据企业的实际情况进行调整。如数据库管理员刚开始可以设置一个比较低的基线阀值,然后根据报警事件的有效性来逐步对此进行调整。这个调整的过程可能需要半年甚至更长的时间。虽然这个过程比较长,但是相对于自动化监视给数据库管理员带来的收益来讲,也是值得的。
四、 度量基线设置的便捷方法
如果有一个个的去设置对象的度量基线,难度会比较大。而且没有基础数据的话,乔木难为无米之炊,这个度量基线更加难以设置。那么度量基线设置有没有一些便捷的方法呢?笔者这里就给大家介绍一些方法。
一是根据企业的实际应用情况来选择合适的监视对象。企业管理起的监视对象有多大数十种。数据库管理员没有必要一一为其设置度量值。管理员只需要根据数据库服务器的实际情况,来进行设置。如对于表空间的限制,就需要根据不同的情况来对待。如用户的表空间没有进行容量的限制,那么就没有必要对表空间对象进行监视。但是,表空间大小仍然受到硬盘空间***容量的限制。虽然没有必要对用户的表空间大小设置度量值,但是仍然有必要对硬盘的使用量进行监视。如果硬盘的使用率达到某个程度时,仍然需要对数据库管理员提出警告。但是,这已经省了不少的功夫。因为如果一个数据库管理员有多个表空间,为每个表空间设置度量值的话,工作量就会比较大。而现在只需要为一个硬盘设置度量值即可。所以说,度量基线设置的***个便捷方法就是选择合适的监视对象。在大部分情况下,没有必要为全部的对象设置度量值。
二是根据服务器操作系统的任务进程来设置度量值。在数据库服务器的操作进程中,数据库管理员可以收集到一些对度量基线设置很有帮助的值。如CPU、内存的使用率等等。如果数据库管理员发现数据库性能下降的时候,是由于CPU、内存使用过高所造成的。那么数据库管理员就可以在自己怀疑对象的上面设置这个度量值。或者对内存等硬件进行升级后再设置度量值。这可以帮助数据库管理员追踪硬件升级的效果。数据库系统与操作系统是难兄难弟,两者的性能彼此之间有很大的影响。所以根据服务器操作系统所收集的数据,可以作为Orcle数据库度量值的参考。况且不少服务器操作系统本身就配置了相关的性能检测参数。此时这些参数可以直接作为数据库管理员设置数据库度量基线的参考数据。
三是在刚开始的时候不需要设置度量基线。等数据库在企业中运行一段时间内,数据库管理员就可以收集到相关的影响数据库性能的瓶颈资源。根据这些以前的性能可以帮助管理员设置合理的度量基线。这对于大部分企业来说,可能是一个比较实用的度量基线设置方法。随着应用软件应用的深入,对于数据库系统的考验也会越来越大。当使用了一段时间之后,数据库管理员再根据前一段时间收集起来的性能相关数据。有了这堆数据的支持,那么管理员设置合理的度量曲线就会简单的多。
【编辑推荐】