度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 1172|回复: 2
打印 上一主题 下一主题

[分享] oracle查询、Kill锁资源的SQL语句

[复制链接]

348

主题

3572

帖子

9378

积分

论坛元老

Rank: 8Rank: 8

积分
9378
跳转到指定楼层
楼主
发表于 2020-4-2 21:25:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
有时候在对oracle中的表进行DML操作的时候,会出现类似资源正在被使用的提示,如果资源正在被使用,就可能会导致该资源被oracle给锁住,导致别的session无法进行操作。这个时候,我们可以通过查找到对该资源进行锁定的session,然后kill掉该session。在查锁的时候,主要用到的表或视图主要有v$locked_object、all_objects、v$session等。
  1. -- 查看锁表进程SQL语句1:
  2. SELECT b.session_id,
  3.        b.oracle_username,
  4.        b.os_user_name,
  5.        b.process,
  6.        b.locked_mode,
  7.        a.owner,
  8.        a.object_name,
  9.        a.object_id,
  10.        a.object_type,
  11.        b.xidusn,
  12.        b.xidslot,
  13.        b.xidsqn
  14.   FROM all_objects a, v$locked_object b
  15. WHERE a.object_id = b.object_id;
  16. -- 查看锁表进程SQL语句2:
  17. SELECT *
  18.   FROM v$locked_object v, all_objects ao
  19. WHERE v.object_id = ao.object_id;
  20. -- 杀掉锁表进程
  21. -- 如有记录则表示lock,记录下SID和serial#,将记录下的SID和serial#替换下面的738,1429,即可接触lock。
  22. ALTER SYSTEM KILL SESSION '738,1429';
复制代码
上面的SQL代码只是用作参考,记住主要操作v$locked_object、all_objects、v$session这几个对象就OK了,kill语句记不住也没关系,可以使用PL/SQL Developer工具来kill。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
板凳
发表于 2020-4-3 20:22:24 | 只看该作者
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
沙发
发表于 2020-4-3 20:21:48 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-12-23 12:39 , Processed in 0.122345 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表