专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

Oracle锁表解决方法 oracle锁表是什么意思

ins518 2024-10-29 15:25:56 技术文章 11 ℃ 0 评论

概述

后台数据库操作某一个表时发现一直处于假死状态,可能是该表被某一用户锁定,接下来模拟介绍下查询被锁表及如何解锁,感兴趣的朋友可以参考下,希望可以帮助到你。


1、模拟操作

select * from demo for update;

2、查看哪个session引起的锁

   SELECT 
           object_name,
           s.username,
           s.inst_id,
           s.sid,
           s.serial#,
           s.status,
           to_char(p.spid) spid,
           to_char(s.logon_time, 'yyyy-mm-dd hh24:mi:ss') logon_time
      FROM gv$locked_object l, dba_objects o, gv$session s, gv$process p
     WHERE l.object_id = o.object_id
       AND l.session_id = s.sid
       and l.inst_id = s.inst_id
       and s.inst_id = p.inst_id
       AND s.paddr = p.addr;

可以看到锁对象是DEMO,sid,serial=2545,54807

解锁命令:

alter system kill session '2545,54807'

注意点:

a、如果状态为INACTIVE,则直接执行L_SQL脚本即可(任意节点均可以)

b、如果状态为ACTIVE且EVENT为安全的等待事件,则直接kill -9 spid即可(注意要到对应的节点)

c、杀了这个进程感觉舒服多了,如果是我们自己玩没什么 ,可要是在生产环境你就要小心了 所以我们需要注意一下了

3、通过OS命令删除

ps -ef | grep 27422

4、结束

到此这篇关于Oracle锁表解决方法的文章就介绍到这了,更多DBA相关技术文档请双击加关注,希望大家以后多多支持。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表