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