前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如何将数据库中被锁表解锁

如何将数据库中被锁表解锁

作者头像
源哥
发布2018-08-28 11:15:27
发布2018-08-28 11:15:27
5160
举报
文章被收录于专栏:源哥的专栏源哥的专栏

我们在操作数据库的时候,有时候会由于操作不当引起数据库表被锁定,这么我们经常不知所措,不知怎么给这些表解锁,在pl/sql Developer工具的的菜单“tools”里面的“sessions”可以查询现在存在的会话,但是我们很难找到那个会话被锁定了,想找到所以被锁的会话就更难了,下面这叫查询语句可以查询出所以被锁的会话。如下:

SELECT   sn.username, m.SID,sn.SERIAL#, m.TYPE,          DECODE (m.lmode,                  0, 'None',                  1, 'Null',                  2, 'Row Share',                  3, 'Row Excl.',                  4, 'Share',                  5, 'S/Row Excl.',                  6, 'Exclusive',                  lmode, LTRIM (TO_CHAR (lmode, '990'))                 ) lmode,          DECODE (m.request,                  0, 'None',                  1, 'Null',                  2, 'Row Share',                  3, 'Row Excl.',                  4, 'Share',                  5, 'S/Row Excl.',                  6, 'Exclusive',                  request, LTRIM (TO_CHAR (m.request, '990'))                 ) request,          m.id1, m.id2     FROM v$session sn, v$lock m    WHERE (sn.SID = m.SID AND m.request != 0)         --存在锁请求,即被阻塞       OR (    sn.SID = m.SID                         --不存在锁请求,但是锁定的对象被其他会话请求锁定           AND m.request = 0           AND lmode != 4           AND (id1, id2) IN (                         SELECT s.id1, s.id2                           FROM v$lock s                          WHERE request != 0 AND s.id1 = m.id1                                AND s.id2 = m.id2)          ) ORDER BY id1, id2, m.request;

通过以上查询知道了sid和 SERIAL#就可以开杀了    alter system kill session 'sid,SERIAL#';

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2005年03月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档