oracle死锁的处理办法
摘自:https://www.cnblogs.com/xuke/p/4053396.html
http://blog.itpub.net/30036720/viewspace-2121034/
oracle表被锁(delete或update一直处于执行状态)的处理办法。

1 --首先查看有哪些锁
2 select /*+ rule */ s.username,
3 decode(l.type,'TM','TABLE LOCK','TX','ROW LOCK',null) lock_level,
4 o.owner,
5 o.object_name,
6 o.object_type,
7 s.sid,s.serial#,
8 s.terminal,
9 s.machine,
10 s.program,
11 s.osuser
12 from v$session s,v$lock l,dba_objects o
13 where l.sid = s.sid
14 and l.id1 = o.object_id(+)
15 and s.username is not null
16
17 --如果发生了锁等待,看是谁锁了表而引起谁的等待
18 --以下的语句可以查询到谁锁了表,而谁在等待。 如果有子节点,则表示有等待发生
19 select /*+ rule */ lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username user_name,
20 o.owner,
21 o.object_name,
22 o.object_type,
23 s.sid,
24 s.serial#
25 from v$locked_object l,dba_objects o,v$session s
26 where l.object_id=o.object_id
27 and l.session_id=s.sid
28 order by o.object_id,xidusn desc
29
30
31 --找到引起等待的session,杀掉该session:
32 alter system kill session 'sid,serial#';
分类: Oracle
2016-06-27 10:30:36
1. ORACLE中查看当前系统中锁表情况
select * from v$locked_object
可以通过查询v$locked_object拿到sid和objectid,然后用sid和v$session链表查询是哪里锁的表,用v$session中的objectid字段和dba_objects的id字段关联,查询详细的锁表情况。
查询SQL如下:
select sess.sid,
sess.serial#,
lo.oracle_username,
lo.os_user_name,
ao.object_name,
lo.locked_mode
from v$locked_object lo, dba_objects ao, v$session sess, v$process p
where ao.object_id = lo.object_id
and lo.session_id = sess.sid;
查询是什么SQL引起了锁表的原因,SQL如下:
select l.session_id sid,
s.serial#,
l.locked_mode,
l.oracle_username,
s.user#,
l.os_user_name,
s.machine,
s.terminal,
a.sql_text,
a.action
from v$sqlarea a, v$session s, v$locked_object l
where l.session_id = s.sid
and s.prev_sql_addr = a.address
order by sid, s.serial#;
2. ORACLE解锁的方法
alter system kill session ’146′; –146为锁住的进程号,即spid
转自 http://blog.itpub.net/196700/viewspace-754310/
oracle死锁的处理办法的更多相关文章
- 【锁】Oracle死锁(DeadLock)的分类及其模拟
[锁]Oracle死锁(DeadLock)的分类及其模拟 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不 ...
- 教您如何检查oracle死锁,决解死锁
oracle死锁问题一直困扰着我们,下面就教您一个oracle死锁的检查方法,如果您之前遇到过oracle死锁方面的问题,不妨一看…… oracle死锁问题一直困扰着我们,下面就教您一个oracle死 ...
- oracle 死锁
oracle 死锁 --查用户名,查客户端机器 SELECT distinct s.username,s.MACHINE, s.sid||','||s.serial# FROM gv$session ...
- Oracle ORA-01033: 错误解决办法
转自 Oracle ORA-01033: 错误解决办法
- Oracle死锁处理实例
Oracle死锁常规语句 1.查询Oracle死锁常规语句 SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username, l ...
- Oracle死锁产生的原因和解决办法
如果有两个会话,每个会话都持有另一个会话想要的资源,此时就会发生死锁.用下面实验来说明死锁的产生原因和解决办法.SESSION1:SQL> create table t2 as select * ...
- Oracle死锁
当两个或多个用户相互等待锁定的数据时就会发生死锁,这时这些用户被卡在不能继续处理业务,oracle可以自动检测死锁并解决他们,通过回滚一个死锁中的语句,释放锁定的数据,回滚的话会遇到ora-00060 ...
- DB2死锁的解决办法
db2 get snapshot for locks on sampledb2 get db cfg for sampledb2 update db cfg using dlchktime 10000 ...
- Oracle死锁查询及处理
一.数据库死锁的现象程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错.二.死锁的原理当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提交,另一条对于这一列数据做更 ...
随机推荐
- [转载] java并发编程:Lock(线程锁)
作者:海子 原文链接: http://www.cnblogs.com/dolphin0520/p/3923167.html 出处:http://www.cnblogs.com/dolphin0520/ ...
- Java学习NO.3
今日学习重点: while循环: 语法:while(条件表达式){ 循环操作 } 条件表达式符合,循环继续执行:否则,退出循环. 循环四要素:循环初始化.循环条件.循环操作.循环变量的改变 do-wh ...
- python中的 uuid 模块使用示例
此模块提供不可变的 UUID 对象 (类 uuid) 和函数uuid1().uuid3().uuid4().uuid5(), 用于生成在 RFC 4122 中指定版本1.3.4和5UUIDs .如果你 ...
- 使用Axure做验证码之获取验证码(一)
本次作业,制作验证码,仅完成获取验证码操作,如下: 分析: 左图为矩形,主要展示验证码(本例设置4位验证码),其中验证码为字母和数字组合: 右图为文本输入框,主要设置点击事件,即点击文本文字,矩形框中 ...
- 关闭Azure虚拟机
Press the Windows key, and then in the Start page, located at the bottom-left, click the Power butto ...
- Mysql数据库账户权限设置
1.修改mysql数据库的root密码: 修改 数据库.表名 SET password=加密(‘密码’) where user=’root’; UPDATE mysql.user SET passwo ...
- AI之旅(5):正则化与牛顿方法
前置知识 导数,矩阵的逆 知识地图 正则化是通过为参数支付代价的方式,降低系统复杂度的方法.牛顿方法是一种适用于逻辑回归的求解方法,相比梯度上升法具有迭代次数少,消耗资源多的特点. 过拟合与欠 ...
- SQL练习题-50道SQL练习题及答案与详细分析
网上流传较广的50道SQL训练,奋斗了不知道多久终于写完了.前18道题的难度依次递增,从19题开始的后半部分算是循环练习和额外function的附加练习,难度恢复到普通状态.第9题非常难,我反正没有写 ...
- Web测试常见问题点汇总
UI测试 [目标] 确保用户可以访问产品所提供的浏览功能.符合企业或行业标准,包含用户易用性,友好性.可操作性等 [关注点] 菜单.对话框以及上边的文字.按钮.错误提示.帮助信息.图标.位置等. [常 ...
- 微信小程序之跳转、请求、带参数请求小例子
wx.request(OBJECT) wx.request发起的是 HTTPS 请求.一个微信小程序,同时只能有5个网络请求连接. 具体参数说明参看微信小程序官方文档-发起请求. 例: //当页面加载 ...