解决oracle表锁死

来源:互联网 发布:网络ip地址冲突 编辑:程序博客网 时间:2024/06/06 00:23
--*oracle中查看表是否被锁 *SELECT /*+ rule*/ a.sid, b.owner, object_name, b.object_type FROM v$lock a, all_objects b WHERE a.TYPE = 'TM' and a.id1 = b.object_id; --查到的都是被锁的表 ,这样可以把它杀掉 替换&sid参数SELECT sid,serial# FROM v$session WHERE sid = &sid; --根据上条语句查出的serial#替换下面两个参数。alter system kill session 'sid,serial#';

若发生ora-00031错误,需要直接从OS系统清理占用资源的线程则:

select spid,osuser,s.program  from v$session s, v$process p    where s.PADDR =p.ADDR and s.SID = '110' --查询占用资源的线程id等,110是session_id

1) 在unix上,用root身份或是相应的oracle身份执行命令:

#kill -9 12345(即第3步查询出的spid)

2)在windows(unix也适用)用orakill杀死线程,orakill是oracle提供的一个可执行命令,语法为:
orakill sid thread
其中:
sid:表示要杀死的进程属于的实例名
thread:是要杀掉的线程号,即第3步查询出的spid。
例:c:>orakill orcl 12345

0 0