Matar Sessão sem ID

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
vvp0
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Ter, 23 Out 2012 2:04 pm

Boa Tarde Gurizada, seguinte

há alguns dias fiz um bloco anonimo para fazer uma carga de dados no banco,fechei o sqlDeveloper e fui embora,porem ao voltar no outro dia percebi que ainda continuava a inserir os registros na tabela,tentei matar a sessao porem aparece este erro:

Selecionar tudo

Erro ao iniciar na linha 7 no comando
ALTER SYSTEM KILL SESSION '1300, 35532' IMMEDIATE
Relatório de erro:
Erro de SQL: ORA-00030: User session ID does not exist.
00030. 00000 -  "User session ID does not exist."
*Cause:    The user session ID no longer exists, probably because the
           session was logged out.
*Action:   Use a valid session ID.
Agora não consigo matar essa sessao $%#$%#% e não para de popular o nosso banco,alguém tem uma outra ideia de como matar esta sessao?

Vlw e aguardo respostas!
Avatar do usuário
madmax
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 293
Registrado em: Qua, 13 Dez 2006 5:02 pm
Localização: São Paulo
Contato:
________________________________
Douglas - Madmax.

Cara,

Esse erro e porque o ID sesion esta invalido,

Tente o seguinte use este select com sys para mostrar o que esta em execução no banco e pagar o Id Session correto.

Selecionar tudo

Select s.Sid, 
       s.Status, 
       s.Process, 
       s.Schemaname, 
       s.Osuser, 
       a.Sql_Text, 
       p.Program 
  From V$session s, V$sqlarea a, V$process p 
 Where s.Sql_Hash_Value = a.Hash_Value 
   And s.Sql_Address = a.Address 
   And s.Paddr = p.Addr 
   And s.Schemaname Is Not Null 
   And s.STATUS = 'ACTIVE' 
Depois pegue o sid,serial e tente dar o kill, tem que dar certo.

Selecionar tudo

alter system kill session '168,17960';
Se não der certo aconselho baixar o banco.

Espero ter ajudado.
Avatar do usuário
fbifabio
Moderador
Moderador
Mensagens: 199
Registrado em: Ter, 22 Fev 2011 1:51 pm
Localização: São Paulo - SP
Contato:
Fábio Prado
www.fabioprado.net

@vvp0

Não baixa o BD não!!! Faça um relacionamento da V$SESSION com a V$PROCESS e identifique o número do processo no SO, da sessão que está executando o INSERT (ver coluna PROCESSO_SO da consulta abaixo).

Selecionar tudo

SELECT      T1.SPID AS PROCESSO_SO,
            t2.sid SESSION_ID,
            t2.serial# SESSION_SERIAL, 
            t2.program as PROGRAMA,
            t2.username as USUARIO_BD,
            t2.osuser as USUARIO_SO,
            to_char(t2.logon_time, 'DD/MM/YYYY HH24:MI:SS') AS DATA_HORA_LOGIN,
            ROUND(t2.last_call_et / 60, 2) as time_last_call,
            TO_CHAR(SYSDATE - (1 /24/60/60 * last_call_et),'dd/mm/yy hh24:mi:ss') last_call_time,
            t2.seconds_in_wait as WAIT_SECONDS, 
            t2.action,
            t2.machine as MACHINE
FROM        v$process t1
INNER JOIN  v$session t2
    ON      t1.addr = t2.paddr
Com o número do processo desejado, executado o comando abaixo em uma janela de prompt do linux:
kill -9 numero_processo_so

[]s
vvp0
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Ter, 23 Out 2012 2:04 pm

Vlw brother a sessao ficou inativa hoje,não sei o que aconteceu o script deve te terminado e a sessao foi inativada

Obrigado pela ajuda!
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 22 visitantes