Como verificar bloqueios atuais em um banco de dados Oracle

O programa Oracle usa uma função de bloqueio para garantir que mais de uma função atualize os dados ao mesmo tempo e, assim, mantenha a integridade das informações. O bloqueio ocorre em vários níveis, incluindo linhas, tabelas e espaços nas tabelas. O bloco no nível do usuário, o comando “commit” torna as alterações permanentes e elimina o bloco. O comando “rollback” reverte as alterações antes de liberar o bloqueio. O programa Oracle registra as informações de bloqueio em uma tabela do sistema, chamada “v $ lock” e você pode verificá-las usando o SQL (Structured Query Language).

Passo 1

Verifique a tabela “v $ lock” do Oracle para bloquear as informações. Use a opção “Selecionar” para ver “sid”, “type”, “lmode” e “request”. Sid representa o número de identificação da sessão e identifica a sessão que possui o bloqueio.

selecione sid, tipo, lmode, solicitação de v $ lock;

Etapa 2

Associe a tabela “v $ session” do Oracle à tabela “v $ lock” para determinar quem está bloqueando o banco de dados. Participe da sessão lateral (ID da sessão) para encontrar o nome de usuário.

selecione s.username, s.sid, l.type, l.lmode, l.request de v $ lock l, v $ session s em que l.sid = s.sid;

Etapa 3

Consulte a tabela “v $ locked_object” para obter mais informações sobre o que está bloqueando. Participe da tabela “dba_objects” para obter o nome e o tipo. O nome do objeto indica que está bloqueado e as colunas do nome de usuário identificam quem criou o bloqueio.

selecione oracle_username os_user_name, locked_mode, object_name, object_type de v $ locked_object lo, dba_objects faça onde lo.object_id = do.object_id;

Referências

 

Você pode estar interessado:

Deixe um comentário