免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 10168 | 回复: 14
打印 上一主题 下一主题

【原创】找出表被谁锁住了 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-02-09 19:13 |只看该作者 |倒序浏览
如果您执行SQL语句时候出现下面的错误提示:
   244: Could not do a physical-order read to fetch next row.
   113: ISAM error:  the file is locked.
毫无疑问,您要访问的表被别人锁住了。
   
如果您的使用了 set lock mode to wait 语句,onstat -u 命令可以报告出会话在等待锁资源的信息(

标志位“L”),如:
c0000000379015e8 L--PR-- 4626     informix tJ       c0000000006e45f0 20   1     0        0   
超时后报错:
   244: Could not do a physical-order read to fetch next row.
   154: ISAM error: Lock Timeout Expired   

那么,怎么样找出是谁锁住了这个表呢?介绍一个小技巧,执行下面SQL语句:

   DATABASE sysmaster;
   SELECT owner FROM syslocks WHERE tabname="表名";

得到的owner就是加锁的会话号SID,于是我们就可以使用 onstat -g ses SID 命令查看该会话的信息,

包括是哪个用户、执行了什么SQL语句。还可以通过DBA身份使用 onmode -z 命令杀断该会话。

论坛徽章:
0
2 [报告]
发表于 2004-02-10 10:54 |只看该作者

【原创】找出表被谁锁住了

顶一下~~~~~~~~~

论坛徽章:
0
3 [报告]
发表于 2004-02-10 21:53 |只看该作者

【原创】找出表被谁锁住了

我有此这样的代码,到时贴出来看看

论坛徽章:
0
4 [报告]
发表于 2004-02-11 00:39 |只看该作者

【原创】找出表被谁锁住了

用IBM的ISA工具一下子就搞定了。

论坛徽章:
0
5 [报告]
发表于 2004-02-11 08:39 |只看该作者

【原创】找出表被谁锁住了

up

论坛徽章:
0
6 [报告]
发表于 2004-02-11 12:45 |只看该作者

【原创】找出表被谁锁住了

我也顶一下。。。

论坛徽章:
0
7 [报告]
发表于 2004-02-11 13:40 |只看该作者

【原创】找出表被谁锁住了

建议楼主在发表主题的时候不要使用“原创“

论坛徽章:
0
8 [报告]
发表于 2004-02-11 19:37 |只看该作者

【原创】找出表被谁锁住了

[quote]原帖由 "czw1413_cn"]建议楼主在发表主题的时候不要使用“原创“[/quote 发表:

呵呵,打击别人的积极性呢
不过方法真的不错,比我的好多了:
1、发现锁表(以tea为例)。
2、在systables中找出tea对应的partnum。
3、用计算器将此数转换成十六进制。
4、用onstat -k|grep [十六进制] 找到相应的锁,并记录相对应的owner号,此owner号表示进行此操作的用户进程。
5、用onstat -u|grep [owner号] 找到相应的用户进程。
6、如果想看看到底是哪个语句产生的锁,用:onstat -g ses [owner号] 查看语句。或者用onmode -z [owner号]杀之。

论坛徽章:
0
9 [报告]
发表于 2004-02-11 19:50 |只看该作者

【原创】找出表被谁锁住了

to 版主:
   对不起,下次不敢了。呵呵 ~

to amiescort  :
   我以前的做法跟你说的差不多,前天查了官方文档,发现了这个系统表,一试才知道有这种用法。

to chenjiakai :
   谢谢提醒,ISA以前也用过,还不知道有这个功能呢。

论坛徽章:
0
10 [报告]
发表于 2004-02-11 21:11 |只看该作者

【原创】找出表被谁锁住了

to amiescort:
这绝不是打击,只是觉得没有必要
问题在标题里说明白就可以了
to all:
希望大家多发帖子,大家互相帮助,互相学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP