Chinaunix首页 | 论坛 | 博客
  • 博客访问: 313021
  • 博文数量: 45
  • 博客积分: 2170
  • 博客等级: 大尉
  • 技术积分: 1090
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-18 10:49
文章分类

全部博文(45)

文章存档

2011年(6)

2010年(4)

2009年(23)

2008年(12)

我的朋友

分类: DB2/Informix

2010-11-13 21:50:08

informix和oracle锁表解锁
 
对于informix数据库
选择sysmaster数据库
select * from syslocks; 查到锁表的owner
然后在informix下onmode -z owner;
 
 
对于Oracle数据库的锁:
  查看被锁的表:
    select p.spid,
           c.object_name,
           b.session_id,
           b.oracle_username,
           b.os_user_name
      from v$process p, v$session a, v$locked_object b, all_objects c
     where p.addr = a.paddr
       and a.process = b.process
       and c.object_id = b.object_id
  解锁:
    alter system kill session '12345';(其中12345为锁住的进程号)
 
 
Informix 数据库锁处理

可以将 syssessions 表与 syslocks 表连接以获取关于锁的更多详细信息,如哪个会话当前锁定了哪个数据库中的哪个表,以此来帮助确定各用户之间潜在的锁冲突:
select owner, username, hostname, dbsname, tabname, type
from syssessions s, syslocks l
where sid  = owner
and tabname = u_tablenameXXX
输出类似于:
Owner        username        hostname        dbsname                tabname                type
1422        wsine                apple                prod               customer        S
1567        jlinder                  sys3524         dev            products        S
2237        ejhonson        case            prod           orders          X
6679    cjz020          sys4800         dev            shipment        S
889654  jfjianing       omega           test           prices          X
77622   hong            build50         test           items           S
如果在锁使用方面存在某些冲突,例如某个用户需要对已被别的用户锁定的表进行专有访问,那么您可以方便地确定该锁的所有者,并根据用户的优先级发出 onmode -z sid 命令来杀死会话,然后释放该锁;sid 这个编号是从上面输出中的 owner 字段中获取的;请注意,只有用户“Informix”可以执行该命令。
阅读(2957) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~