Oracle数据库死锁解决方法
来源:互联网 发布:plsql sql导入乱码 编辑:程序博客网 时间:2024/05/19 02:39
死锁是数据库经常发生的问题,数据库一般不会无缘无故产生死锁,死锁通常都是由于我们应用程序的设计本身造成的。产生死锁时,如何解决呢,下面是常规的解决办法:
1)执行下面SQL,先查看哪些表被锁住了:
select b.owner,b.object_name,a.session_id,a.locked_mode
from v$locked_object a,dba_objects b
where b.object_id = a.object_id;
2)查处引起死锁的会话
select b.username,b.sid,b.serial#,logon_time
from v$locked_object a,v$session b
where a.session_id = b.sid order by b.logon_time;
这里会列出SID
3) 查出SID和SERIAL#:
查V$SESSION视图:
SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='刚才查到的SID';
这一步将得到PADDR
4)查V$PROCESS视图:
SELECT SPID FROM V$PROCESS WHERE ADDR='刚才查到的PADDR';
这一步得到SPID
5)杀死进程
(1)在数据库中,杀掉ORACLE进程:
ALTER SYSTEM KILL SESSION '查出的SID,查出的SERIAL#';
(2)如果在ORACLE中不能杀死进程,我们只能到操作系统中,使用操作系统命令杀死进程
KILL -9 “刚才查出的SPID”
在WINDOWS平台,可以是偶那个orakill。
1)执行下面SQL,先查看哪些表被锁住了:
select b.owner,b.object_name,a.session_id,a.locked_mode
from v$locked_object a,dba_objects b
where b.object_id = a.object_id;
2)查处引起死锁的会话
select b.username,b.sid,b.serial#,logon_time
from v$locked_object a,v$session b
where a.session_id = b.sid order by b.logon_time;
这里会列出SID
3) 查出SID和SERIAL#:
查V$SESSION视图:
SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='刚才查到的SID';
这一步将得到PADDR
4)查V$PROCESS视图:
SELECT SPID FROM V$PROCESS WHERE ADDR='刚才查到的PADDR';
这一步得到SPID
5)杀死进程
(1)在数据库中,杀掉ORACLE进程:
ALTER SYSTEM KILL SESSION '查出的SID,查出的SERIAL#';
(2)如果在ORACLE中不能杀死进程,我们只能到操作系统中,使用操作系统命令杀死进程
KILL -9 “刚才查出的SPID”
在WINDOWS平台,可以是偶那个orakill。
- Oracle数据库死锁解决方法
- oracle数据库死锁解决方法
- oracle 死锁解决方法
- oracle 死锁解决方法
- oracle死锁的解决方法
- 数据库死锁解决方法
- 数据库死锁及解决方法
- 数据库死锁及解决方法
- oracle 数据表死锁解决方法 Oracle
- Oracle数据库死锁处理
- oracle数据库死锁
- oracle 查数据库死锁
- oracle数据库死锁问题
- oracle 查看数据库死锁
- db2 数据库死锁的解决方法
- 数据库死锁及oracle死锁介绍
- Oracle死锁、数据库链接问题
- 开发随笔-Oracle数据库-----死锁
- C++ 中dynamic_cast<>的使用方法
- android图片处理方法
- ubuntu 乱码 求大神赐教
- 如何应用autosizing属性使iOS应用程序界面适配iPhone5
- 浅析Linux IO技术体系
- Oracle数据库死锁解决方法
- ObjectiveC基础教程(第2版)
- 阿里巴巴2013暑期实习生笔试题
- UVA 218 Moth Eradication【顺时针输出凸包顶点+凸包周长】
- 安装hbase
- Android 中的 Service 全面总结
- Java JNI简单实现
- JAVA基础之正则表达式
- 如何封别人QQ