解决Oracle死锁的快捷方法

以下的文章主要是介绍一种更为快捷的方法来实现Oracle死锁,以下就是具体方案的描述,如果你对其相关的实际操作有兴趣的话,你就可以对以下的文章点击观看了。希望会给你带来一些帮助在此方面。

1.查哪个过程被锁

查V$DB_OBJECT_CACHE视图:

 

 
 
 
  1. SELECT * FROM V$DB_OBJECT_CACHE WHERE OWNER=' 

过程的所属用户' AND LOCKS!='0';

2. 查是哪一个SID,通过SID可知道是哪个SESSION.

查V$ACCESS视图:

 

 
 
 
  1. SELECT * FROM V$ACCESS WHERE OWNER=' 

过程的所属用户' AND NAME='刚才查到的过程名';

3. 查出SID和SERIAL#

查V$SESSION视图:

 

 
 
 
  1. SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID=' 

刚才查到的SID'

查V$PROCESS视图:

 

 
 
 
  1. SELECT SPID FROM V$PROCESS WHERE ADDR=' 

刚才查到的PADDR';

4. 杀进程

(1).先杀Oracle进程:

 

 
 
 
  1. ALTER SYSTEM KILL SESSION ' 

查出的SID,查出的SERIAL#';

(2).能过CMD控制台,再杀操作系统进程:

ORAKILL 数据库实现 刚才查出的SPID

一定要记住,要把之前查出的Oracle死锁记下来,然后,一一对其Kill,如果Kill不干净的话,还是解决不了问题

【编辑推荐】

  1. Oracle存储过程中如何准确的实现分页
  2. Oracle安全策略的实际用法
  3. Oracle数据库中的(+)连接如何操作?
  4. Oracle 10G数据库中软硬件环境有哪些要求?
  5. 安装Oracle 10g 在redhat linux 的正确方案
THE END