Você está na página 1de 5

EXEMPLO DE SITUAO DE LOCK

1) Tela 1

Criada tabela teste inserida uma linha fechada transao feito um update detalhe a transao ainda est aberta

2) tela 2

Como vemos acima a ltima linha um update na tabela teste, como esta est presa pelo comando update feito na tela anterior o ORACLE fica aguardando o fechamento da primeira transao para concluso desta, desta forma mantm o travamento (lock).

PARA RESOLVER ISSO:

1) logar como usurio ORACLE; 2) executar o script consulta_locks.sh, neste script possvel localizar qual mquina, aplicao est fazendo o LOCK e quem a mesma est prentendo, neste caso temos duas alternativas, a primeira resolver quem est locando, fechando a transao, reiniciando o client, etc. A outra alternativa matando quem est travando, para este caso mais extremo um pouco tem um outro script no mesmo diretrio mata.sh Vejas as telas:

Esta tela acima est um pouco complicado de visualizar deste tamanho, mas d para identificar que euem est travando uma aplicao no caso aqui sqlplus, usurio oracle e mquina apollo porque meu exemplo est no server. Vamos rodar o script que mata:

Vejamos a situao das telas anteriores:

A primeira que estava prendendo aparece com a sesso morta.

A tela que estava presa consegue concluir o update, neste momento esta segunda tela que gerou um lock no banco de dados e se uma terceira tentar fazer o mesmo update o problema ir continuar e dependendo muitas vezes da tabela e coluna que utilizamos o problema pode se propagar pelo banco inteiro.

Espero que tenha entendido.

Andr