李斯特 发表于 2018-9-25 06:25:01

Oracle杀死死锁进程

  杀进程中的会话
  杀掉Oracle进程中的会话,语法如下:

[*]alter system kill session 'sid,serial#';
  


例如:  


[*]alter system kill session '29,5497';
  


如果有ora-00031错误,则在后面加immediate:  


[*]alter system kill session '29,5497' immediate;
  

  如何杀死Oracle死锁进程
  1.查哪个过程被锁
  查V$DB_OBJECT_CACHE视图:
  


[*]SELECT * FROM V$DB_OBJECT_CACHE WHERE OWNER='过程的所属用户' AND CLOCKS!='0';
  

  2.查是哪一个SID,通过SID可知道是哪个SESSION
  查V$ACCESS视图:
  


[*]SELECT * FROM V$ACCESS WHERE OWNER='过程的所属用户' AND NAME='刚才查到的过程名';
  

  3.查出SID和SERIAL#
  查V$SESSION视图:
  


[*]SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='刚才查到的SID';
  


查V$PROCESS视图:  


[*]SELECT SPID FROM V$PROCESS WHERE ADDR='刚才查到的PADDR';
  

  4.杀进程
  (1)先杀Oracle进程:
  


[*]ALTER SYSTEM KILL SESSION '查出的SID,查出的SERIAL#';
  

  (2)再杀操作系统进程:
  KILL -9 SPID SPID为前面查出的操作系统进程号。


页: [1]
查看完整版本: Oracle杀死死锁进程