早晨来了,发现今天所有数据都没有上来,查看发现快照表里没有今天的数据,当我想load 昨天的数据出来时,报 245: Could not position within a file via an index. 的错误,informix 锁表问题。处理步骤:
<1> 在informix用户下找出锁表的用户:onstat -ks|grep HDR+X,输出的内容很多很多,
10ad44850 0 1acf10c10 10d214a70 HDR+X 160009b 784e801 0
10ad44d20 0 1acf10c10 11d51dfa0 HDR+X 160009b 1c40301 0
10ad44e70 0 1acf10c10 123c785d0 HDR+X 160009b 70bc201 0
10ad46840 0 1acf10c10 1135969c0 HDR+X 400880 101da01 K- 1
10ad474f0 0 1acf10c10 115efbe60 HDR+X 160009b 6df6301 0
..........................
每列分别对应:
Locks address wtlist owner lklist type tblsnum rowid key#/bsiz
锁地址 等待线程列表 用户 …列表 锁类型 行id
<2> 所有的owner列都是1acf10c10,根据owner 找到对应的sessid:
onstat -u | grep 1acf10c10,
看到结果:
1acf10c10 C-RPR-- 5395192 npmuser - 10a130358 0 199800 374159 255337
分别对应为:
address flags sessid user tty wait tout locks nreads nwrites
<3> 用 onstat -g ses 5395192 可以看到具体的内容。
杀掉session :onmode -z 5395192
最后锁表解决了以后,重新处理今天的数据就没问题了!
具体锁表的原因有必要再做详细查询!
<1> 在informix用户下找出锁表的用户:onstat -ks|grep HDR+X,输出的内容很多很多,
10ad44850 0 1acf10c10 10d214a70 HDR+X 160009b 784e801 0
10ad44d20 0 1acf10c10 11d51dfa0 HDR+X 160009b 1c40301 0
10ad44e70 0 1acf10c10 123c785d0 HDR+X 160009b 70bc201 0
10ad46840 0 1acf10c10 1135969c0 HDR+X 400880 101da01 K- 1
10ad474f0 0 1acf10c10 115efbe60 HDR+X 160009b 6df6301 0
..........................
每列分别对应:
Locks address wtlist owner lklist type tblsnum rowid key#/bsiz
锁地址 等待线程列表 用户 …列表 锁类型 行id
<2> 所有的owner列都是1acf10c10,根据owner 找到对应的sessid:
onstat -u | grep 1acf10c10,
看到结果:
1acf10c10 C-RPR-- 5395192 npmuser - 10a130358 0 199800 374159 255337
分别对应为:
address flags sessid user tty wait tout locks nreads nwrites
<3> 用 onstat -g ses 5395192 可以看到具体的内容。
杀掉session :onmode -z 5395192
最后锁表解决了以后,重新处理今天的数据就没问题了!
具体锁表的原因有必要再做详细查询!