segunda-feira, 12 de setembro de 2016

[Oracle] ORA-01940: não e possivel eliminar um usuario conectado no momento

[Oracle] ORA-01940: não e possivel eliminar um usuario conectado no momento
 Erro acontece quando se tenta dropar usuário que está conectado.

PARAR O SERVIÇO SANKHYA/JIVA E O SERVIÇO SAS

SQL> drop user JIVA cascade;
drop user JIVA cascade
*
ERROR at line 1:
ORA-01940: não e possivel eliminar um usuario conectado no momento

-- verificar se usuario está associado a jobs ativos
SQL> select job from dba_jobs where log_user='JIVA';

-- verificar as sessoes do usuario
SQL> select s.sid, s.serial#, s.status, p.spid from v$session s, v$process p where s.username = 'JIVA' and p.addr (+) = s.paddr;

-- mate as sessões do usuário
SQL> ALTER SYSTEM KILL SESSION 'sid, serial#' IMMEDIATE;

-- se for varias sessoes, select q gera script para matar varias sessoes
SQ> select 'alter system kill session ' ||  '''' || s.sid || ',' || s.serial# || ''';' mata_sessao from v$session s, v$process p where s.username = 'JIVA' and p.addr (+) = s.paddr;

-- agora sim, dropando usuário:
SQL> drop user JIVA cascade;

User dropped.

-- conferindo:
SQL> select username from dba_users where username = 'JIVA';

no rows selected


Fonte: SDK - Linux e Banco de Dados

Nenhum comentário:

Postar um comentário