oracle 死锁现象重现,查询及处理
来源:互联网 发布:乎字的意义和用法 编辑:程序博客网 时间:2024/05/17 06:07
造成死锁的原因就是多个线程或进程对同一个资源的争抢或相互依赖。这里列举一个对同一个资源的争抢造成死锁的实例。
Oracle 10g, PL/SQL version 9.2
死锁现象的重现:
1)在sql 窗口 执行:SELECT * FROM testLock FOR UPDATE; -- 加行级锁 并对内容进行修改,不要提交
2)另开一个command窗口,执行:delete from testLock WHERE ID=1;
此时发生死锁(注意此时要另开一个窗口,不然会提示:POST THE CHANGE RECORD TO THE DATABASE. 点yes 后强制commit):
3)死锁查看:
字段说明:
Username:死锁语句所用的数据库用户;
SID: session identifier, session 标示符,session 是通信双方从开始通信到通信结束期间的一个上下文。
SERIAL#: sid 会重用,但是同一个sid被重用时,serial#会增加,不会重复。
Lockwait:可以通过这个字段查询出当前正在等待的锁的相关信息。
Status:用来判断session状态。Active:正执行SQL语句。Inactive:等待操作。Killed:被标注为删除。
Machine: 死锁语句所在的机器。
Program: 产生死锁的语句主要来自哪个应用程序。
4)查看引起死锁的语句:
5)死锁的处理:
此时在执行delete语句的窗口出现:
再查看一下死锁,会发现已经没有stauts为active的记录了:
发生死锁饿语句已经被终止。
引用:
教您如何检查oracle死锁
Oracle死锁的处理
Oracle 动态性能表 v$session & v$process
- oracle 死锁现象重现,查询及处理
- oracle 死锁现象重现,查询及处理
- oracle死锁查询及处理
- Oracle死锁查询及处理
- Oracle死锁查询及处理
- oracle死锁查询及处理
- Oracle死锁查询及处理
- oracle死锁查询及处理
- oracle死锁查询及处理
- oracle死锁查询及处理
- Oracle死锁查询及处理
- oracle死锁查询及处理
- oracle死锁查询及处理
- Oracle死锁查询及处理
- Oracle死锁查询及处理
- Oracle死锁查询及处理
- Oracle死锁查询及处理
- Oracle死锁查询及处理
- 测试一下pack()在不同layout上的效果
- Eclipse中如何修改每行最大显示字符数(格式化代码时避免自动换行)
- 各个手机尺寸对应的像素
- jquey点击table行 获取行数据 赋值到其他控件
- 16. 试用vSphere 6(三):安装vCenter 6(独立数据库)之:vCenter安装与配置
- oracle 死锁现象重现,查询及处理
- docker网络配置基础
- Kmp找字符串循环节——Period ( POJ 1961 )
- WCF、WebAPI、WCFREST、WebService之间的区别
- 突出一个简单粗暴!Android Activity泄漏问题解决方案
- poj 1328 Radar Installation
- Http协议详解
- 学习记录-Qt的多工程管理
- android中Android Studio Error:Dependency报错解决方案