ora-00031:session marked for kill(标记要终止的会话)解决方法

本文介绍了解决ORA-00031:sessionmarkedforkill错误的方法。当执行ALTER SYSTEM KILL SESSION命令时遇到此错误,可以通过查询并杀死对应的SPID来解决。文章提供了具体的SQL查询及在Linux和Windows上的操作步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ora-00031:session marked for kill(标记要终止的会话)解决方法


      今天碰到一个问题,有一张表不能操作,很可能是被锁了,首先想到的是kill session,于是执行了下列的脚本找到是哪个session有问题:

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;

      发现有一个会话有锁sid 197,serial# 17,于是执行alter system kill session ‘197,17’;大概等了30s中,pl/sql developer报出一个错误:ora-00031:标记要终止的会话。

解决方法:查出session的spid

select spid, osuser, s.program

 from v$session s, v$process p

 where s.paddr = p.addr

   and s.sid =197;

1. 在linux上,  kill -9 12345

2. 在windows上,C:\Documents and Settings\gg>orakill orcl 12345

orcl:表示要杀死的进程属于的实例名

12345:是要杀掉的线程号

 

ORA-00031: session marked for kill

Cause: The session specified in an ALTER SYSTEM KILL SESSION command cannot bekilled immediately (because it is rolling back or blocked on a networkoperation), but it has been marked for kill. This means it will be killed as soonas possible after its current uninterruptible operation is done.

Action: No action is required for the session to be killed, but further executionsof the ALTER SYSTEM KILL SESSION command on this session may cause the sessionto be killed sooner.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值