关于Oracle进程锁
以下Sql可以找出锁表的进程 select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$session sess where ao.object_id = lo.object_id and lo.session_id =sess.sid; 以下Sql可以找出编译存储过程、函数、包的进程 SELECT * FROM V$SESSION s, sys.x$kglob o, sys.x$kglpn p WHERE upper(o.kglnaobj) LIKE upper('%不能编译的包体%') AND p.kglpnhdl = o.kglhdadr AND s.SADDR = p.kglpnuse; select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID; 找出SID与Serial#后执行以下语句闭关Session alter system kill session '144,46679' ; 但我们想停止正在运行的Job时,dbms_jobs.broken + remove时无法将其停止只是打上停止标记,需要用以下方法: 执行下面的语句获得进程(线程)号: select spid, osuser, s.program from v$session s,v$process p where s.paddr=p.addr and s.sid=524 (524是上面的sid) 在OS上杀死这个进程(线程): unix上,用root身份或是相应的oracle身份执行命令: #kill -9 9846(9846 上一步查询出的spid) windows(unix也适用)用orakill杀死线程,orakill是oracle提供的一个可执行命令 ,此命令需在命令窗口中运行。用法为: orakill sid thread PS: sid:表示要杀死的进程属于的实例名 thread:是要杀掉的线程号,即第3步查询出的spid。 exp: c:>orakill orcl 9846 ———————————————— 版权声明:本文为CSDN博主「大巧不工」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/saijie1983/article/details/102336381
杀进程