栏位长度改不了
有个表的栏位要从char(12)------>char(20),但是一直改不了,提示242: 无法开启资料库表格 (informix.bcw_file).
106: ISAM 错误:非独占性存取.
但是却并未发现有锁之类的,请问如何处理? onstat -k 看下吧。。。使用parnum的16进制查找~ 本帖最后由 Hendane 于 2010-11-19 16:49 编辑
select hex(partnum) from systables
where tabname like "鎖住的表名"
這條語句會返回該表的物理地址。(取物理地址最后六位,如有大寫字母換成小寫。)
然后返回到informix用戶下
onstat -k | grep 表的物理地址(6位)
會返回該表的鎖定行。如果沒有返回。則証明該表沒有鎖定。
onstat -u | grep 鎖定地址
返回哪個用戶會話鎖定該表
这个是没发现有锁的。但是就是改不了。
改了几天了。
之前我也遇到过,但是实在没办法,就只能把这个库的所有session杀掉,再修改。
但是我想informix也不至于这么烂吧,是不是有其它方法能找到哪个session在使用这个表。 select hex(partnum) from systables
where tabname like "鎖住的表名"
這條語句會返回該表的物理地址。( ...
Hendane 发表于 2010-11-19 16:46 http://bbs.chinaunix.net/images/common/back.gif
onstat -g opn通过partnum去匹配rstcp, 然后在onstat -u中匹配rstcp获取会话ID。
BTW:由于手动操作/即便是SHELL操作也是需要时间的,可能抓不到匹配的会话ID。 可以考虑set lock mode to wait ; lock table .. ; drop table方式来删除表。 TKS,刚试了试没找到匹配的,但是已经改掉了,可能是用户退出了。下次遇到这种情况再试试。还从来没用过
opn这个选项:dizzy: 你的还是个中文版的!
看来挺别扭的!
这种情况肯定是锁了! 知道是锁了,但是平常方法找不出锁,所以改不了。
确切的说是繁体版的 回复 4# liaosnet
這種方法是否能應對如下情況:造成表鎖的原因是由於指向該表的synonym造成(虛表有人在操作,虛表不在本機)?
我們日常操作還有一種方法: select owner from sysmaster:syslocks where tabname like ""和onmode -z owner 組合。但該方法只適合于常規。
页:
[1]