- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Informix常用监控命令和维护工作
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和
文档评论(0)