Saturday, February 21, 2009

Orakill

Orakill é uma ferramenta disponibilizada para DBAs finalizarem threads as quais se encontram dentro do executavel oracle.exe, orakill apenas é disponibilizado em ambientes windows.

Em um ambiente unix, vemos todos os processos ativos no servidor, já em ambiente windows, os processos de background e processos de usuário ficam ativos dentro do executavel oracle.exe como threads, ao analisar o task manager apenas encontramos o oracle.exe. No unix finalizamos uma sessão pelo SO com um kill -9, equivalente ao kill -9, no windows temos a ferramenta orakill.

Sintaxe:

orakill Instance spid

Obter o os process pelo sqlplus:

select a.username, a.osuser, a.sid, a.serial#, b.spid as "OS Process"
from v$session a, v$process b
where a.paddr = b.addr
and a.username is not null;

Exemplo:

Vamos finalizar a sessão pertencente ao usuário hr:

SQL> select a.username, a.osuser, a.sid, a.serial#, b.spid as "OS Process"
2 from v$session a, v$process b
3 where a.paddr = b.addr
4 and a.username is not null;

USERNAME OSUSER SID SERIAL# OS Process
---------- -------------------- ---------- ---------- ------------
SYS DHNOMURA\dhnomura 159 5 5096
HR DHNOMURA\dhnomura 148 12 6024

C:\Documents and Settings\Administrator>orakill orcl 6024

Kill of thread id 6024 in instance orcl successfully signalled.

SQL> select a.username, a.osuser, a.sid, a.serial#, b.spid as "OS Process"
2 from v$session a, v$process b
3 where a.paddr = b.addr
4 and a.username is not null;

USERNAME OSUSER SID SERIAL# OS Process
---------- -------------------- ---------- ---------- ------------
SYS DHNOMURA\dhnomura 159 5 5096

A sessão do user hr não se encontra mais ativa, assim liberando todos os locks feito pelo usuário e realizam rollback de transações não finalizadas.

Cuidados:

Não devemos finalizar threads pertencentes a bgprocess.

Aplicativos:

Existe um aplicativo capaz de quebra os processos e mostrar os threads contidos dentro dele, esse app é o QuickSlice.

Ref:
http://www.oracleutilities.com/OSUtil/orakill.html

No comments: