ORA-00031:标记要终止的会话

本文介绍在Oracle数据库中如何处理被标记为已杀除但未完全释放资源的会话。当使用altersystemkillsession命令后出现ORA-00031错误时,可以通过查询V$PROCESS和V$SESSION视图找到被杀除会话的SPID,并从操作系统层面杀死该进程。

在oracle中,通过alter system kill session 'sid,serial#'查杀会话后,会话所持有的事务可能需要提交或回滚,此时该会话会被标记成killed,但是资源还没有释放,此时重复执行alter system kill session 'sid,serial#'时,会出现ORA-00031错误
在这里插入图片描述
此时只要将该会话的SPID找出来,从操作系统中杀掉该进程即可。

SELECT P.SPID, S.SID, S.SERIAL#, S.USERNAME, S.PROGRAM
FROM V$PROCESS P, V$SESSION S
WHERE P.ADDR=S.PADDR AND S.STATUS='KILLED';

SPID										SID    SERIAL# USERNAME   PROGRAM
------------------------------------------------------------------------ ---------- ---------- ---------- -------------------------
13755									       1632	 20355 ZJHIS	  emr_yzbjq.exe

SQL> !ps -ef | grep 13755
oracle   13755     1  0 15:34 ?        00:00:01 oracleorcl (LOCAL=NO)
oracle   20230 19615  0 17:13 pts/0    00:00:00 /bin/bash -c ps -ef | grep 13755
oracle   20232 20230  0 17:13 pts/0    00:00:00 grep 13755

SQL> !kill -9 13755

SQL> !ps -ef | grep 13755
oracle   20316 19615  0 17:14 pts/0    00:00:00 /bin/bash -c ps -ef | grep 13755
oracle   20318 20316  0 17:14 pts/0    00:00:00 grep 13755

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值