Informix常用监控命令和维护工作

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Informix常用监控命令和维护工作

一、监控工具

onstat命令介绍

onstat是由informix提供的监控工具,可查看数据库运行的各个方面的信息,下面介绍一些常用的onstat命令:

onstat –p 这个命令用来查看数据库运行的整体状况,其中主要注意一下读写命中率、deadlock个数、seqscan数、预读状况的相关数据。

onstat –l 查看逻辑日志和物理日志使用状况,以及逻辑日志的备份状况,备份过的逻辑日志都会有U—B的状态,如果出现很多逻辑日志都是U——的状态,说明逻辑日志备份出了问题,必须尽快处理。

onstat –d 查看数据库空间使用状况,需要注意一个是chunk的状态有无是PD的,这表明chunk处于down状态,需要特别处理,另外可以根据chunk的free值统计dbspace空间使用状况,以及时做好扩容准备。

onstat –u 查看数据库的连接数以及每个数据库连接的读写量,可用来查找占用资源较多的用户连接。

onstat –k 查看数据库锁的使用状况,可在发生锁表的情况下使用,以寻找锁表的session。

onstat –m 查看数据库消息日志的情况。

onstat –g sql sid查看某特定sesssion正在执行的sql语句,可用来分析sql执行的效率。

onstat –g dri 查看HDR的状态。

onstat还有很多选项,可通过onstat -- 看到所有的选项及相关说明。

●SMI(System-Monitoring Interface)表

Informix提供了一系列SMI表供用户查询数据库运行状况,这些表都位于sysmaster数据库中,可通过sql进行查询,下面介绍一些常用的SMI表

Sysdatabases,systabnames:存放所有的database和table的信息。

Sysprofile:存放onstat –p看到的信息的对应数据

Sysdbspaces,syschunks:存放dbspace和chunk的信息。

Sysptprof:存放instance中每个表的读写信息。

Syssessions,syssesprof:存放每个sesssion的信息。

Syslocks:存放数据库锁的信息。

Informix数据库的监控及troubleshooting基本上都是通过这两种方式来进行。

二、维护工作

●Update statistics

对于所有的sql操作数据库服务器都会首先产生的一个执行计划,

然后根据这个执行计划来进行具体的执行,执行计划是根据相关系统表(systables,sysindexes,sysdistrib)中的信息产生的,而这些系统表不会随着实际表信息的改变而动态的更新相关信息,而update statistics这个sql就是执行这项工作的,需要定期执行此项工作,以使系统表的信息尽可能的和实际情况接近,从而得到较为准确的执行计划。

Update statistics分low、medium、high三种,low是缺省的执行模式,只更新systables和sysindexes中的对应信息,而medium和high 还会在sysdistrib表中生成表中字段的分布信息,从而进一步提高执行计划的准确性,当然这也使得medium和high级别的update statistics 需要花比low更多的时间,建议定期对每个数据库进行low级别的update statistics,如果应用需要,则对相关的表进行medium或high 级别的update statistics。

Oncheck

这个命令用来检查表中数据和索引是否有损坏,并会进行修复的尝试。

当数据库运行时间较长以后,随着不断的修改,有可能产生一些坏页(索引中出现的较多),从而影响一些sql操作的结果。因此需要定期对活跃表和索引进行检查。

需要注意的是,在oncheck检查过程中,数据库会锁住相关的表,使得其他用户无法修改。

数据重组

数据重组包括表的重组和索引的重组。

Informix数据库中每个表都是由entents构成的,一个extent是一组连续的页,如果表的extent数越少,则说明表的数据连续性越强,读写的效率也会高,反之亦然。

可通过在建表时指定相应的extent size和next size来限制extent 数的增长,当然设得过大会造成空间的浪费。一般来说,只有在应用程序中对某表的访问速度达不到应用的需要,且做过update statistics 后也没有效果的情况下,可以考虑进行表的重组。将表数据和schema 卸出,drop、recreate表(注意指定合适的extent size和next size),重新装载数据,之后需要对此表进行update statistics操作,使得系统表信息及时更新。

索引由于其特殊的处理的机制(删除的索引项不是立即删除,而只是加一个删除标志,等以后再清理),某些修改量非常大的索引会产生大量的已删除项,这些删除项白占着空间,对索引的访问效率会造成影响,所以需要定期对这些索引进行drop和recreate,以清除这些删除项,提高索引的访问效率。

以上是informix数据库常用的监控命令和维护工作,经常使用和熟练掌握这些工具,定期的维护数据库,从而保证数据库高效、安全、稳定地运转。

相关文档
最新文档