Oracle表的死锁
2011-08-30 21:53
141 查看
案例:用PL/SQL Developer修改数据库中table1表的记录后未提交,然后在程序中 通过Hibernate操作数据库中table1,发现系统会停在操作数据库的那一句,无报错,长时间无响应。这时侯这张表就 死锁 了。
一、 数据库死锁的现象
程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错。
二、 死锁的原理
当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提
交,另一条对于这一列数据做更新操作的语句在执行的时候就会处于等待状态,
此时的现象是这条语句一直在执行,但一直没有执行成功,也没有报错。
三、 死锁的定位方法
通过检查数据库表,能够检查出是哪一条语句被死锁,产生死锁的机器是哪一台。
解决死锁方法:
--查询出来的结果为 解锁语句
select 'alter system kill session ''' ||s.sid||','||s.serial#||'''; '
from v$locked_object l,dba_objects o ,v$session s
where l.object_id = o.object_id and l.session_id=s.sid;
--查询 引起死锁的SQL语句
select sql_text from v$sql where hash_value in
(select sql_hash_value from v$session where sid in
(select session_id from v$locked_object))
--
select username,lockwait,status,machine,program from v$session where sid in
(select session_id from v$locked_object)
SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,
l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS
FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;
一、 数据库死锁的现象
程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错。
二、 死锁的原理
当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提
交,另一条对于这一列数据做更新操作的语句在执行的时候就会处于等待状态,
此时的现象是这条语句一直在执行,但一直没有执行成功,也没有报错。
三、 死锁的定位方法
通过检查数据库表,能够检查出是哪一条语句被死锁,产生死锁的机器是哪一台。
解决死锁方法:
--查询出来的结果为 解锁语句
select 'alter system kill session ''' ||s.sid||','||s.serial#||'''; '
from v$locked_object l,dba_objects o ,v$session s
where l.object_id = o.object_id and l.session_id=s.sid;
--查询 引起死锁的SQL语句
select sql_text from v$sql where hash_value in
(select sql_hash_value from v$session where sid in
(select session_id from v$locked_object))
--
select username,lockwait,status,machine,program from v$session where sid in
(select session_id from v$locked_object)
SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,
l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS
FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;
相关文章推荐
- oracle删除死锁的session
- Oracle 表死锁 解决
- Oracle 外键造成的死锁
- ORACLE存在的死锁会话
- oracle的死锁查询及处理
- oracle的死锁实验
- Oracle 死锁的检测查询及处理
- ORACLE-Kill 杀死正在执行的Oracle存储过程和死锁语句
- java+oracle+web(第八天) java 基础课程(一) 线程同步和死锁
- 『锁和进程』Oracle的死锁
- ORACLE检查死锁
- Oracle外键不加索引引起死锁示例
- Oracle外键不加索引引起死锁示例
- Oracle中死锁与等待
- Oracle死锁查询及处理
- Oracle 查询死锁并解锁的终极处理方法
- oracle 死锁解决
- Oracle 死锁
- 解决Oracle死锁问题,及产生的原因
- Oracle常见死锁发生的原因以及解决方法