informix常用故障处理操作 下载本文

内容发布更新时间 : 2024/6/18 20:12:03星期一 下面是文章的全部内容请认真阅读。

个人收集整理资料, 仅供交流学习, 勿作商业用途

Informix 计算长事务回滚时间及解决办法

如何估算长事务回滚的时间 环境:

IDS9.40及其以上版本 问题描述:

用户往往由于一次操作的数据量过大,导致长事务,使整个数据库服务器暂时挂起而不可用。用户需要估算长事务回滚完成的时间,以便做出安排。 解答:

可以使用onstat -x -r 10监控该事务的回滚状态.并通过日志回滚的速率来估算回滚的时间。

“-r 10”表示每10秒显示一次。下面是两次的间隔10秒输出:

address flags userthread locks beginlg curlog logposit isol retrys coord d745b58 A-R-- d715e7c 4904 51 53 0x8f61c8 COMMIT 0

address flags userthread locks beginlg curlog logposit isol retrys coord d745b58 A-R-- d715e7c 4904 51 53 0x5a1acc COMMIT 0

从输出可以看到,该事务起始的逻辑日志号是51,当前回滚到53,还需要继续回滚2个逻辑日志。在这10秒中回滚的逻辑日志大小可以通过两次的logposit相减得出,方法为:去掉每个logposit的后三位,剩下的数字相减就是日志回滚的page数目,再乘以page size 就可得到这10秒回滚的日志大小。例如:

(0x8f6 - 0x5a1)*4 = 3412 K (4表示当前系统的page size是4K),那么一分钟逻辑日志能够回滚 3412/10*60=20472 K

假设每个逻辑日志的大小为50M,则该长事务还需要回滚的时间大约是5.28分钟

个人收集整理资料, 仅供交流学习, 勿作商业用途

((1024*50) * 2 + 0x5a1*4)/20472 =5.28 一、查看数据库状态 正常情况下是 onstat -

IBM Informix Dynamic Server Version 9.40.FC7 -- On-Line -- Up 35 days 16:51:16 -- 3920896 Kbytes 长事务情况下是 onstat -

IBM Informix Dynamic Server Version 9.40.FC7 -- On-Line (LONGTX) -- Up 35 days 16:41:40 -- 3920896 Kbytes Blocked:LONGTX

二、显示事务(transaction)信息

其中flag字段中第三个标志位为R说明事务在rollback,说明这个事务是长事务 onstat -x

IBM Informix Dynamic Server Version 9.40.FC7 -- On-Line (LONGTX) -- Up 35 days 16:41:56 -- 3920896 Kbytes Blocked:LONGTX Transactions

1cf0a6748 A-R-- 1cd55c618 642073 119403 119405 0x1aa91e4 DIRTY 0 三、通过长事务的userthread值找出session id

onstat -u |grep 1cd55c6181cd55c618 --RPX-- 1880841 informix - 0 0 642073 256446 323049

个人收集整理资料, 仅供交流学习, 勿作商业用途

四、显示会话连接信息,找出造成长事务的SQL语句,并优化 onstat -g ses 1880841

informix锁表处理步骤:锁表处理步骤:

1、onstat -ks|grep HDR+X //查询是那个表被锁

address wtlist owner lklist type tblsnum rowid key#/bsiz c1809510 0 d656e774 c181cb3c HDR+X 6002e1 2c602 0 需要关注lklist和type项,从上面来看tblsnum为6002e1(6292193十六进制转换成十进制)的表被锁了。可以重查询是那个表被锁:

dbaccess :select * from systables where partnum='6292193'得到 tabname basetab_mvpn owner smpmml partnum 6292193 tabid 12813 rowsize 464 ncols 61 nindexes 1 nrows 2984 created 12/10/2002 version 839843846 tabtype T locklevel R npused 746