kill指定的操作系统进程,释放锁oracle
  IE5LYMWlmdvL 2023年11月02日 63 0

故障描述

  • 业务侧反映,kill会话之后,查询会话状态为killed,但是会话一直不释放,无法进行DML操作

故障排查

  • 1)查看当前数据库中,哪些对象有锁。查询结果中的SID=1288与业务侧提供的会话一致
select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;

kill指定的操作系统进程,释放锁oracle_会话状态

  • 2)查看会话相关信息,会话状态是killed
select * from v$session where sid=1288

kill指定的操作系统进程,释放锁oracle_锁_02

  • 3)根据查询到的PADDR,查询v$process,定位会话对应的操作系统进程

kill指定的操作系统进程,释放锁oracle_kill_03

  • 4)根据查询到的TADDR,查询v$transaction,定位会话对应的事务。可以看到当前事务仍然是ACTIVE状态,因此表上的锁并未释放

kill指定的操作系统进程,释放锁oracle_锁_04

  • 5)查看操作系统进程
[oracle@rac1 ~]$ ps -ef|grep 33733
oracle   33733     1  0 16:05 ?        02:48:01 oraclerac1 (LOCAL=NO)
oracle   19670 16636  0 18:53 pts/1    00:00:00 grep --color=auto 33733
  • 6)kill指定的操作系统进程,释放锁
[oracle@rac1 ~]$ kill 33733
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
IE5LYMWlmdvL