视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
详解在数据库中Oracle如何解锁
2020-11-09 15:49:30 责编:小采
文档

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 我们这里将介绍Oracle如何解锁,在被锁之后我们也可以利用一些工具来进行解锁。下面大家就一同来了解Oracle如何解锁吧。 我们在操作数据库的时候,有时候会由于操作不当引起数据库表被锁定,这么我

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

  我们这里将介绍Oracle如何解锁,在被锁之后我们也可以利用一些工具来进行解锁。下面大家就一同来了解Oracle如何解锁吧。

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

  1.SELECT sn.username, m.SID,sn.SERIAL#, m.TYPE,

  2. DECODE (m.lmode,

  3. 0, \'None\',

  4. 1, \'Null\',

  5. 2, \'Row Share\',

  6. 3, \'Row Excl.\',

  7. 4, \'Share\',

  8. 5, \'S/Row Excl.\',

  9. 6, \'Exclusive\',

  10. lmode, LTRIM (TO_CHAR (lmode, \'990\'))

  11. ) lmode,

  12. DECODE (m.request,

  13. 0, \'None\',

  14. 1, \'Null\',

  15. 2, \'Row Share\',

  16. 3, \'Row Excl.\',

  17. 4, \'Share\',

  18. 5, \'S/Row Excl.\',

  19. 6, \'Exclusive\',

  20. request, LTRIM (TO_CHAR (m.request, \'990\'))

  21. ) request,

  22. m.id1, m.id2

  23. FROM v$session sn, v$lock m

  24. WHERE (sn.SID = m.SID AND m.request != 0) --存在锁请求,即被阻塞

  25. OR ( sn.SID = m.SID --不存在锁请求,但是锁定的对象被其他会话请求锁定

  26. AND m.request = 0

  27. AND lmode != 4

  28. AND (id1, id2) IN (

  29. SELECT s.id1, s.id2

  30. FROM v$lock s

  31. WHERE request != 0 AND s.id1 = m.id1

  32. AND s.id2 = m.id2)

  33. )

  34.ORDER BY id1, id2, m.request;

  通过以上查询知道了sid和 SERIAL#就可以用了

  1.alter system kill session \'sid,SERIAL#\';

下载本文
显示全文
专题