如何解决Oracle死锁问题

以下的文章主要描述的是Oracle死锁的解决办法,你如果对Oracle死锁的具体解决办法有兴趣的话你就可以点击以下的文章进行观看了。以下就是具体方案的描述,希望在你今后的学习中会有所帮助。
1.查哪个过程被锁

查V$DB_OBJECT_CACHE视图:

SELECT * FROM V$DB_OBJECT_CACHE WHERE OWNER='过程的所属用户' AND LOCKS!='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).能过CMD控制台,再杀操作系统进程:

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

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

 

 上述的相关内容就是对Oracle死锁解决办法的描述,希望会给你带来一些帮助在此方面。

【编辑推荐】

  1. Oracle数据库字典的创建与安装
  2. Oracle 函数用法之decode解剖
  3. Oracle RAC配置的3步骤以及配置错误的原因
  4. Oracle EXPLAIN PLAN的实际应用经验总结
  5. Oracle数据字典的恢复场景
THE END