删除甲骨文打死会议
问题描述:
我杀了会议删除甲骨文打死会议
ALTER SYSTEM KILL SESSION '123,456' IMMEDIATE;
但它仍然在v$session
5天,虽然连接的进程是v$processes
缺席。
SELECT
s.username,
s.osuser,
s.sid,
s.serial#,
p.spid
FROM v$session s, v$process p
WHERE s.sid = '123'
AND p.addr (+)= s.paddr;
我也查了有关甲骨文所有Linux进程并没有发现僵尸:所有在场的过程对活动的会话保持一致。
编辑:这种情况不适用于所有死亡的会话。看起来PMON是活跃的,因为大部分被杀的会话在合理的时间内从列表中清除(通常需要一秒钟)。
可以做些什么来消除列表中的长时间死亡会话?
答
这些应该由PMON自动清除,但有时候在卡住的过程中需要'醒来'。
要唤醒PMON,先获得PID使用
SELECT pid FROM v$process
WHERE addr =
(
SELECT paddr FROM v$bgprocess
WHERE name = 'PMON'
);
如果PID是6然后使用发送唤醒呼叫:
ORADEBUG WAKEUP 6
和你可能需要重复该命令几次,直到失控会话被清除。
在最坏的情况下,您必须重新启动数据库。 –
@Wernfried Domscheit,我猜我会的。但在此之前,我想了解为什么会发生这种情况,是否有一种不太残酷的方式来进行清理。 – diziaq