知识大全 Kill Session[Metalink]

Posted 文字

篇首语:等不到的晚安就别等了,挤不进的世界就别挤了。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Kill Session[Metalink]相关的知识,希望对你有一定的参考价值。

Kill Session[Metalink]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Killing the session will not clear the locks The session on the remote database will remain idle waiting for input until the neork read times out Only then the kill session is processed and locks are released   Solution Description     Options:  ========  You can shutdown and restart the database or use the ORAKILL utility to kill threads   Oracle has provided an ORAKILL utility that will kill shadow threads Each user s connection is represented by a thread in the Oracle process If a user s session is killed then their Oracle session is killed not the thread   Oracle has provided an ORAKILL utility which can be passed a thread ID and will kill the specified thread     To make sure you do not kill a background process (which would crash your database) you must perform a select to ensure you get the correct thread      select p spid OS Thread b name Name User s osuser s program  from v$process p v$session s v$bgprocess b  where p addr = s paddr  and p addr = b paddr UNION ALL  select p spid OS Thread s username Name User s osuser s program  from v$process p v$session s  where p addr = s paddr  and s username is not null;     This will list all Shadow processes and backgound processes   Each shadow process will show the thread ID this is what must be killed via the ORAKILL utility     The kill session behavior is mentioned in the ORACLE Server Administrator s Guide (pg ) It does not explicitly indicate what happens to the session while it is in the KILLED PSEUDO state What s happening is that PMON periodically checks to see if any sessions have been killed   If it finds one it attempts to rollback the transaction for that session(that was in progress when it was killed) The reason this can take a long time is because PMON may have more than one transaction to rollback at a time(if other sessions have been killed or if processes have died etc)   Thus it may take a while to finally cleanup the killed session and have it disappear from the session monitor The system i/o monitor correctly shows the reads and writes being performed by PMON in order to rollback the session s transaction     PMON will not delete the session object itself until the client connected to that session notices that it has been killed Therefore the sequence of events is:     ) alter system kill session is issued the STATUS of the session object in V$SESSION bees KILLED its server bees PSEUDO      ) PMON cleans up the *resources* allocated to the session(i e rolls back its transaction releases its locks etc)      ) the entry in V$SESSION remains there until the client of that session (the client is the process associated with the OSUSER MACHINE PROCESS columns in the V$SESSION view) tries to do another request      ) the client attempts another SQL statement and gets back ORA      ) PMON can now remove the entry from V$SESSION   This behavior is necessary because the client still has pointers to the session object even though the session has been killed Therefore the object cannot be deleted until the client is no longer pointing at it cha138/Article/program/Oracle/201311/17197

相关参考