OracleOracle解锁Oracle锁表处理
Posted 过节不吃肉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OracleOracle解锁Oracle锁表处理相关的知识,希望对你有一定的参考价值。
1、查看哪些对象被锁
select s.username, decode(l.type, ‘TM‘, ‘TABLE LOCK‘, ‘TX‘, ‘ROW LOCK‘, NULL) LOCK_LEVEL, o.owner, o.object_name, o.object_type, s.sid, s.serial#, s.terminal, s.machine, s.program, s.osuser from v$session s, v$lock l, dba_objects o where s.sid = l.sid and o.object_id = l.id1 and s.username is not null;
2、下面的语句用来杀死一个进程:
alter system kill session ‘33,456‘; ---其中33,456分别是上面查询出的sid,serial#
3、再一次查询目前锁定的对象,若发现以上方法不能解除锁定的表,则用以下方法:
(1)执行下面的语句获得进程(线程)号:
select spid, osuser, s.program from v$session s, v$process p where s.paddr = p.addr and s.sid = 33; ---33是上面的sid
(2)在OS上kill掉这个进程
Linux:
kill -9 3333 (3333为进程号)
Windows(unix也适用)用orakill杀死线程,orakill是oracle提供的一个可执行命令,语法为: orakill sid thread
sid:表示要杀死的进程属于的实例名 thread:是要杀掉的线程号,即第3步查询出的spid。
例:
c:>orakill orcl 3333
以上是关于OracleOracle解锁Oracle锁表处理的主要内容,如果未能解决你的问题,请参考以下文章