Oracle查询锁表以及杀会话或系统进程来解除锁表操作

举报
小工匠 发表于 2021/09/11 01:06:01 2021/09/11
【摘要】 第一步,查询锁表信息 –查询被锁住的数据库对象 select object_name, machine, s.sid, s.serial# from v$locked_object l, dba_...

第一步,查询锁表信息
–查询被锁住的数据库对象

select object_name, machine, s.sid, s.serial#
  from v$locked_object l, dba_objects o, v$session s
 where l.object_id = o.object_id
   and l.session_id = s.sid;
  
 
  • 1
  • 2
  • 3
  • 4

第二步,杀死数据库会话
–杀死数据库会话
alter system kill session ‘207,707’; – 207为SID, 707为SERIAL#

第三步,如果第二步无法杀死会话,报ORA-00031,那么只能杀死UNIX/LINUX系统进程了
–查询当前操作的系统进程ID

select spid, osuser, s.program
  from v$session s, v$process p
 where s.paddr = p.addr
   and s.sid = 207; -- 207为SID
  
 
  • 1
  • 2
  • 3
  • 4

第四步,根据查询到的系统PID,杀掉进程
kill -9 24664 // 24664为UNIX/LINUX系统进程ID

文章来源: artisan.blog.csdn.net,作者:小小工匠,版权归原作者所有,如需转载,请联系作者。

原文链接:artisan.blog.csdn.net/article/details/50496001

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。