Bom dia,
Por alguma razão que não consegui identificar e reproduzir, um registro de uma tabela do meu banco de dados ficou travado. Qualquer alteração nesse registro obtenho o erro "update by another use", mesmo me certificando que não há nenhum outro usuário acessando o mesmo (a não ser que haja alguma sessão travada).
Há como identificar a sessão/usuário que bloqueou o registro? Ou há outra forma de desbloquear sem reiniciar o banco de dados?
Desbloquear registro de tabela
- madmax
- Rank: DBA Pleno
- Mensagens: 293
- Registrado em: Qua, 13 Dez 2006 5:02 pm
- Localização: São Paulo
- Contato:
________________________________
Douglas - Madmax.
Douglas - Madmax.
Olá Marciel.
Existem 2 tipos de LOCK no banco os Implicitos e os Explicitos.
Os esplicitos são faceis de achar são aqueles que eestaão esperando um commit para liberar o registro eu normalmente uso este script para verificar quem e o BLOQUEADOR que esta causando o Lock
Os Locks Implícitos são mais dificieis de achar a causa normalmente so consegue ver no LOG no banco e fica com o erro ORA-0600 DEADLOCK.
Esses você tem que arrumar a aplicação que e o causador do lock, e as vezes so reiniciando o banco liberar este tipo de lock.
Espero ter ajudado.
Abs
Existem 2 tipos de LOCK no banco os Implicitos e os Explicitos.
Os esplicitos são faceis de achar são aqueles que eestaão esperando um commit para liberar o registro eu normalmente uso este script para verificar quem e o BLOQUEADOR que esta causando o Lock
SELECT (
SELECT username
FROM gv$session
WHERE sid=a.sid) bloqueador ,
a.sid, ' is blocking ', (
SELECT username
FROM gv$session
WHERE sid=b.sid) blockee,
b.sid
FROM gv$lock a, gv$lock b
WHERE a.block = 1
AND b.request > 0
AND a.id1 = b.id1
AND a.id2 = b.id2;
Esses você tem que arrumar a aplicação que e o causador do lock, e as vezes so reiniciando o banco liberar este tipo de lock.
Espero ter ajudado.
Abs
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 13 visitantes