2017-08-17 2 views
0

Ich tötete eine SitzungOracle getötet Sitzung

ALTER SYSTEM KILL SESSION '123,456' IMMEDIATE; 

Aber es bleibt in v$session für 5 Tage Entfernen, obwohl eine angebaute Prozess in v$processes fehlt.

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; 

Ich habe auch überprüft alle auf Oracle im Zusammenhang Linux Prozesse und hat keine Zombies: alle gegenwärtigen Prozesse lebendig Sitzungen konsistent sind.

EDIT:Dies geschieht nicht für alle Sitzungen getötet. Es scheint, dass PMON aktiv ist, weil die meisten der getöteten Sitzungen in einer vernünftigen Zeit von der Liste gelöscht werden (oft dauert es eine Sekunde).

Was kann getan werden, um lange spielende Session aus der Liste zu entfernen?

+0

Im schlimmsten Fall müssen Sie die Datenbank neu starten. –

+0

@Wernfried Domscheit, ich denke, ich werde es haben. Aber davor würde ich gerne verstehen, warum es passiert ist und gibt es einen weniger brutalen Weg, um das Aufräumen zu machen. – diziaq

Antwort

0

Diese sollten von PMON automatisch bereinigt werden, aber manchmal müssen Sie es bei festgefahrenen Prozessen "aufwecken".

zu wecken PMON auf, zuerst die PID erhalten

SELECT pid FROM v$process 
WHERE addr = 
(
    SELECT paddr FROM v$bgprocess 
    WHERE name = 'PMON' 
); 

Verwendung Wenn die PID 6 dann mit einem Weckruf senden:

ORADEBUG WAKEUP 6

und Sie Möglicherweise muss dieser Befehl einige Male wiederholt werden, bis die Runaway-Sitzung beendet ist.

+0

Anscheinend ist PMON aktiv, weil andere Sitzungen, die durch den Befehl getötet werden, augenblicklich fast sofort von der Liste verschwinden. Dennoch bleibt die Sitzung, über die die Frage gestellt wurde, länger als 10 Tage im KILLED-Status. – diziaq

+0

Haben Sie das Wecken versucht? Es ist eine Möglichkeit, PMON zum Aufräumen zu zwingen, auch wenn es für normale geschlossene oder abgelegte Sitzungen aktiv ist. – sandman

+0

Ja, ich habe SYS als SYSDBA angeschlossen. ORADEBUG WAKEUP 2 ausgeführt (das ist die aktuelle PID von PMON). Antwort erhalten 'Statement processed'. Die Sitzung befindet sich immer noch im Status KILLED. – diziaq