Benutzer-Werkzeuge

Webseiten-Werkzeuge


dba:kill_disconnect_session

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
dba:kill_disconnect_session [2015/01/02 19:26] – [Eine Sessoin beenden] gpipperrdba:kill_disconnect_session [2015/01/07 11:15] – [Eine gekillete Session in der DB wiederfinden] gpipperr
Zeile 118: Zeile 118:
 === Eine gekillete Session in der DB "wiederfinden" ==== === Eine gekillete Session in der DB "wiederfinden" ====
  
-Wenn eine Session mit "kill Session" beendet wird wird das Session object (und alle abhängigen Objeckte unter der Session) vom orginal Eltern Prozesse abgehängt  +Wenn eine Session mit "kill Session" beendet wird wird das Session Objekt (und alle abhängigen Objeckte unter der Session) vom original Eltern Prozesse abgehängt und unter einen "PSEUDO" Prozess gehängt.  
-und unter einen "PSEUDO" Prozess gehängt. Der PMON Prozess prüft regelmäßig auf diese "PSEUDO" Prozesse und bereinigt diese.+ 
 +Der PMON Prozess prüft regelmäßig auf diese "PSEUDO" Prozesse und bereinigt diese.
  
 Dies hat aber zur Folge das unter der ursprüngliche PADDR Adresse in der V$SESSION der Prozess nicht mehr gefunden werden kann, eine neue PADDR wird vergeben. Dies hat aber zur Folge das unter der ursprüngliche PADDR Adresse in der V$SESSION der Prozess nicht mehr gefunden werden kann, eine neue PADDR wird vergeben.
  
-Um das nun nach zuverfolgen stehen in der V$SESSION diese Spalten ab 11g zur Verfügung:+Um das nun nach zuverfolgen stehen in der V$SESSION diese Spalten zur Verfügung:
  
  * CREATOR_ADDR - state object address of creating process  * CREATOR_ADDR - state object address of creating process
  * CREATOR_SERIAL# - serial number of creating process  * CREATOR_SERIAL# - serial number of creating process
    
-Mit der  CREATOR_ADDR  kann nun die ADDR Spalte in der V$PROCESS gejoined werden um den killeten  Prozess der alten Session wieder zu finden +Mit der  CREATOR_ADDR  kann nun die ADDR Spalte in der V$PROCESS gejoined werden um den gekillten  Prozess der alten Session wieder zu finden
- +
-SQL: +
-<code> +
-select spid +
-     , program  +
-  from v$process  +
- where program!= 'PSEUDO' +
-    and addr not in (select paddr from v$session) +
-    and addr not in (select paddr from v$bgprocess) +
-    and addr not in (select paddr from v$shared_server) +
-/     +
-     +
-</code>+
  
  
 **ab 11g 11.1.0.6 ** **ab 11g 11.1.0.6 **
  
-Folgende zwei neue Views helfen die Session besser wieder zufinden:+Folgende zwei neue Views helfen die Session besser wieder zu finden:
  
  
Zeile 161: Zeile 149:
   * PID - Oracle process id.   * PID - Oracle process id.
  
 +
 +
 +<code sql>
 +ttitle left "Processes without entries in the v$session" skip 2
 +
 +
 +column process_id format a8     heading "Process|ID"
 +column inst_id    format 99     heading "Inst|ID"
 +column username   format a8     heading "DB User|name"
 +column osusername   format a8   heading "OS User|name"
 +column pname       format a8    heading "Process|name"
 +
 +select --p.inst_id  
 +      to_char(p.spid) as process_id
 + , p.username as osusername
 + , p.pname
 + , p.program
 +from v$process p
 + where p.program!= 'PSEUDO' 
 +   and p.addr not in (select gv.paddr from v$session gv)
 +   and p.addr not in (select bg.paddr from v$bgprocess bg)
 +   and p.addr not in (select ss.paddr from v$shared_server ss)
 +--order by p.inst_id 
 +/  
 +  
 +-- new column creator_addr in v$session!
 +
 +ttitle left  "get the prozess of a killed session with the help of the creator_addr" skip 2
 +
 +
 +select --p.inst_id  
 +      to_char(p.spid) as process_id
 + , p.username as osusername
 + , p.pname
 + , p.program
 +from v$process p
 + where p.addr in (select gv.creator_addr from v$session gv where status in ('KILLED') )
 +/
 +
 +ttitle off
 +</code>
  
    
dba/kill_disconnect_session.txt · Zuletzt geändert: 2015/01/16 16:23 von gpipperr