Pular para o conteúdo

Matar ou Suspender um Processo no Oracle

Um processo está rodando no Oracle e está consumindo muitos recursos, fazendo com que todos os outros processos fiquem lentos.
A solução seria matar este processo.

SQL> ALTER SYSTEM KILL SESSION '[Coloque aqui o SID], [Coloque aqui o SERIAL#]' IMMEDIATE;

E se este processo for muito importante também?
Simples, suspenda ele, coloque em PAUSE, usando o oradebug suspend, e depois você pode continua-lo.

Primeiro, você precisa saber o SPID (o PID do Sistema Operacional, no Unix/Linux):
Para saber os SPID ativos no banco de dados:

SQL> SELECT A.SID, A.SERIAL#, A.USERNAME, A.SERVER, B.SPID, A.OSUSER, A.MACHINE, A.PROGRAM, A.LOGON_TIME FROM V$SESSION A, V$PROCESS B WHERE A.PADDR=B.ADDR AND A.SID in (SELECT A.SID FROM V$SESSION A, V$PROCESS B WHERE A.STATUS='ACTIVE' AND A.USERNAME IS NOT NULL AND A.PADDR=B.ADDR);

Depois, use o SPID do processo que quer suspender neste comando:

SQL> oradebug setospid 6785
SQL> oradebug suspend

Depois, para reinicia-lo:

SQL> oradebug resume
Ricardo Portilho Proni

Ricardo Portilho Proni

Com 20 anos de experiência profissional, Oracle ACE Member – eleito pela Oracle Corporation um dos maiores especialistas do mundo em Oracle Database- Trabalhou em grande parte dos maiores bancos de dados Oracle do Brasil. Certificado em Oracle, SQL Server, DB2, MySQL, Sybase e Websphere. Conselheiro do GPO e do GUOB, palestrante do ENPO, GUOB Tech Day e Oracle Open World, escritor da Revista SQL Magazine e Instrutor na Nerv.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Marcações:
plugins premium WordPress