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
- <span style="background-color: white;"> and s.username is not null;</span>
复制代码 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: Windows(unix也适用)用orakill杀死线程,orakill是oracle提供的一个可执行命令,语法为: orakill sid thread sid:表示要杀死的进程属于的实例名 thread:是要杀掉的线程号,即第3步查询出的spid。 例:
|