Chinaunix

标题: 如何查看一个表被占用的状态? [打印本页]

作者: chenrm    时间: 2008-07-12 17:53
提示: 作者被禁止或删除 内容自动屏蔽
作者: liaosnet    时间: 2008-07-13 03:06
这个似乎就比较的麻烦点了~~呵~~
作者: star1212    时间: 2008-07-17 16:13
标题: table解鎖
第一步,确定被锁住的资源
dbaccess <该表所在的数据库>
  select hex(partnum) from systables where tabname="<表名>"
执行返回的是一个16进制表示的数,这是该表在IDS内部的标识。

第二步,查找上锁的用户线索
  运行IDS锁的监控命令onstat -k,确定对该表上锁的用户线索,

  在输出中,查找tblsnum为第一步找到的表号的行,每行代表一个锁资源的情况,并找到相应的owner,即使用这个锁的用户线索号。

第三表,查找用户线索对应的会话
通过用户线索监控命令onstat -u进一步查找相应的会话以及用户情况。
其中第一列为线索号,相对应的第三列为拥有该线索的会话号

第四步,分析原因并采取措施
有了会话号之后,就可以进一步分析原因或采取相应的措施了,如:
onstat -g ses <会话号>,分析会话的状态
onstat -g sql <会话号>,查看会话的SQL情况
注意,如果在会话的database一项中出现的是“-”,说明该会话所对应的客户端程序已经退出,但数据库中的会话并未终止,
或通过onmode -z <会话号>直接终止该会话,其所占有的锁资源将全部释放。
作者: chenrm    时间: 2008-07-24 22:39
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2