怎样看oracle锁,oracle查看锁和解锁

方法一

如何查找锁

从V$lock里面找到锁所属于的session id

select sid from v$lock where id1 = (select object_id from user_objects where object_Name='表名') and request = 0;

在v$session里面查找相应session的所有者或者process,联系所有者或者kill process

select * from v$session where sid = 刚才的sid;

方法二

ORA-02049: timeout: distributed transaction waiting for lock

步骤1:如果是第一次使用该方法,则需要以SYS帐号运行如下代码创建一些视图,以后不需要了:

rdbms/admin/catblock.sql,位置一般在/u03/devp/devpdb/9.2.0/rdbms/admin/catblock.sql,在SQLPLUS中可以通过 @再加上该文件位置运行该脚本,比如@D:\ catblock.sql

步骤2:使用脚本utllockt.sql就可以查看死锁情况了,最好用管理员身份,该文件一般在/u03/devp/devpdb/9.2.0/rdbms/admin/utllockt.sql,同样可以使用@的方法运行该脚本。

步骤3:杀锁。使用如下代码查询,

SELECT sid, serial#

FROM v$session

WHERE sid in (SELECT holding_session FROM dba_waiters);

然后使用命令

ALTER SYSTEM KILL SESSION '128,23396';

杀锁,蓝色部分为前面找出来的sid和serial#参数,

杀锁后,被杀的进程会抛出异常:ORA-00028: 您的会话己被删去

附:查看某人运行的会话可以通过如下方法:

登陆操作系统的用户名:

select * from v$session where osuser='ly4962'

登陆的计算机:

select * from v$session where terminal='YYKFK-LY-454'

登陆的oracle数据库的帐号,但是这种方法会查出可能很多使用这个帐号登陆的用户信息:

select * from v$session where USERNAME='APPS'

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值