Procurando Sessions Blocked

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
agdo
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Sáb, 27 Set 2014 1:14 pm

Pessoal estou procurando uma maneira de saber quais seções estão se dando lock no meu BD encontrei um tutorial que me da o seguinte script:

Selecionar tudo

 select h.session_id Sessao_Travadora, ub.username Usuario_Travador ,
w.session_id Sessao_Esperando, uw.username Usuario_Esperando,
w.lock_type,
h.mode_held,
w.mode_requested,
w.lock_id1,
w.lock_id2
from dba_locks w, dba_locks h, v$session ub, v$session uw
where h.blocking_others = 'Blocking'
and h.mode_held != 'None'
and h.mode_held != 'Null'
and h.session_id = ub.sid
and w.mode_requested != 'None'
and w.lock_type  = h.lock_type
and w.lock_id1  = h.lock_id1
and w.lock_id2 = h.lock_id2
and w.session_id = uw.sid;
Porém eu não tenho essa tabela dba_locks no meu oracle.

Alguém sabe se é assim mesmo? pensei que era padrão do oracle isso.

uso Oracle 11G V11.2.0.3.0.

Se alguém souber de outra maneira de ver quem está "lockando" eu agradeço.
Avatar do usuário
adrianoturbo
Moderador
Moderador
Mensagens: 393
Registrado em: Qui, 20 Mar 2008 4:09 pm
Localização: Brasília
Adriano Alves
---Para cada problema dificil existe uma solução simples.----

Brother ,seguinte essa "tabela dba_locks" que você está chamando de tabela que na verdade não é uma tabela é um SYNONYM que por sua vez referencia a VIEW DBA_LOCK .

O SYNONYM dba_locks é um apelido dado a VIEW DBA_LOCK ,recomendo que troque dba_locks por dba_lock no seu script que vai dar certo.
E para provar o que estou falando acima sobre SYNONYM segue um script detalhando essa referência .

Selecionar tudo

select owner, object_name, object_type from dba_objects
 where object_name like 'DBA_LOCK%';
E para finalizar que nem liquidação,segue um script caso necessite que utilizo para descobrir locks.

Selecionar tudo

SELECT     session_id,
 lock_type,
 mode_held,
 mode_requested,
blocking_others,
lock_id1
FROM     dba_lock 
WHERE      lock_type NOT IN ('Media Recovery', 'Redo Thread')

agdo
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Sáb, 27 Set 2014 1:14 pm

adrianoturbo agradeço muito pela ajuda.
mas infelizmente não encontrei essa VIEW dba_lock tanto que quando executo seu script

Selecionar tudo

SELECT     session_id,
lock_type,
mode_held,
mode_requested,
blocking_others,
lock_id1
FROM     dba_lock
WHERE      lock_type NOT IN ('Media Recovery', 'Redo Thread')
tenho retorno
ORA-00942: table or view does not exist.

estranho não sei o que estou fazendo de errado.
estou como sysdba pelo sqlplus.
Avatar do usuário
adrianoturbo
Moderador
Moderador
Mensagens: 393
Registrado em: Qui, 20 Mar 2008 4:09 pm
Localização: Brasília
Adriano Alves
---Para cada problema dificil existe uma solução simples.----

Brother ,muito estranho ,chegou a colocar o ponto e virgula no final no sqlplus ?
Tenta assim:

Selecionar tudo

SELECT     session_id,
lock_type,
mode_held,
mode_requested,
blocking_others,
lock_id1
FROM     dba_lock
WHERE      lock_type NOT IN ('Media Recovery', 'Redo Thread');
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Agdo, bom dia.

Só mais uma consideração, além das que o Adriano colocou aqui:

Você está conectando no BD com qual usuário?

Abraço,

Trevisolli
agdo
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Sáb, 27 Set 2014 1:14 pm

Bom dia pessoal
estou logando da seguinte maneira

sqlplus / as sysdba
agdo
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Sáb, 27 Set 2014 1:14 pm

adrianoturbo escreveu:Brother ,muito estranho ,chegou a colocar o ponto e virgula no final no sqlplus ?
Tenta assim:

Selecionar tudo

SELECT     session_id,
lock_type,
mode_held,
mode_requested,
blocking_others,
lock_id1
FROM     dba_lock
WHERE      lock_type NOT IN ('Media Recovery', 'Redo Thread');

Selecionar tudo

[oracle@srvoracle scripts]$
[oracle@srvoracle scripts]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Qua Fev 4 09:12:31 2015

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Conectado a:
Oracle Database 11g Release 11.2.0.3.0 - 64bit Production

SQL> select session_id from dba_lock where lock_type NOT IN ('Media Recovery' , 'Redo Thread');
select session_id from dba_lock where lock_type NOT IN ('Media Recovery' , 'Redo Thread')
                       *
ERRO na linha 1:
ORA-00942: a tabela ou view n▒o existe


SQL>


Avatar do usuário
adrianoturbo
Moderador
Moderador
Mensagens: 393
Registrado em: Qui, 20 Mar 2008 4:09 pm
Localização: Brasília
Adriano Alves
---Para cada problema dificil existe uma solução simples.----

Brother,erro detectado ,na hora de digitar o comando ,você chegou a duplicar o select .olha só erro abaixo :

Selecionar tudo

SQL*Plus: Release 11.2.0.3.0 Production on Qua Fev 4 09:12:31 2015

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Conectado a:
Oracle Database 11g Release 11.2.0.3.0 - 64bit Production

SQL> select session_id from dba_lock where lock_type NOT IN ('Media Recovery' , 'Redo Thread');
select session_id from dba_lock where lock_type NOT IN ('Media Recovery' , 'Redo Thread')
                       *
ERRO na linha 1:
ORA-00942: a tabela ou view não existe'
Avatar do usuário
adrianoturbo
Moderador
Moderador
Mensagens: 393
Registrado em: Qui, 20 Mar 2008 4:09 pm
Localização: Brasília
Adriano Alves
---Para cada problema dificil existe uma solução simples.----

Dica :conecte-se com o usuário sys dessa forma :

Selecionar tudo

[oracle@adriano root]$ sqlplus '/as sysdba'

SQL*Plus: Release 11.2.0.4.0 Production on Thu Feb 5 18:12:48 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Release 11.2.0.4.0 - 64bit Production


Responder
  • Informação
  • Quem está online

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