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;