有效关闭Oracle死锁进程的具体步骤: 1。查哪个过程被锁0 d; N, v* Q/ _; o3 _7 g1 F- N+ T$ P
查V$DB_OBJECT_CACHE视图:, ~4 W; X* I/ }6 ], ]8 ~1 Z
SELECT * FROM V$DB_OBJECT_CACHE WHERE OWNER=‘过程的所属用户’ AND CLOCKS!=‘0’;, g. _) b6 p+ Z+ w8 T# W9 m1 r3 z
2. 查是哪一个SID,通过SID可知道是哪个SESSION
$ a" [& X# ^+ O& o l& B 查V$ACCESS视图:( k8 m- C+ f3 H4 ~, K& O
SELECT * FROM V$ACCESS WHERE OWNER=‘过程的所属用户’ AND NAME=‘刚才查到的过程名’;
5 l' w9 `3 @9 P: u s 3. 查出SID和SERIAL#
5 b0 S( k& e b1 f) o9 D 查V$SESSION视图:7 g- Q. H. W% {+ ^3 s, u, w
SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID=‘刚才查到的SID’
4 j6 [7 r* L( j9 F( } 查V$PROCESS视图:# D+ X& m- ?, r. l* \' s9 r
SELECT SPID FROM V$PROCESS WHERE ADDR=‘刚才查到的PADDR’;+ U' D+ O+ J8 S z Q
4. 杀进程- e, Q2 @, `+ V3 n; M6 \
(1)。先杀Oracle进程:
, n2 q# E: ^) ]' e0 ^' R1 ^9 R3 b ALTER SYSTEM KILL SESSION ‘查出的SID,查出的SERIAL#’;" v! U$ C& c0 m. m! {9 T" c. z" v
IXDBA.NET社区论坛( ^0 r& E9 s' w" o* u. v
(2)。再杀操作系统进程:
' R0 `& m! c$ f KILL -9 刚才查出的SPID
E& G. I: y) `6 U, m. a& ^$ p: @ 或者用ORAKILL(刚才查出的SID和SPID)。 |