DBAtlas · Atlas de operações de banco de dados

ORA-00494: enqueue held for too long by 'inst N, osid M' (enqueue mantido por tempo demais)

Oracle

O que significa?

Um enqueue de recurso crítico (por exemplo, CF - control file enqueue) foi mantido por um processo por muito mais tempo do que o permitido, e o Oracle encerrou esse processo para evitar que o sistema travasse. Aparece no alert.log junto com uma entrada 'killing enqueue blocker'.

Por que acontece?

Um processo de background ou de usuário manteve um enqueue importante além do tempo permitido por causa de um gargalo de I/O, forte pressão de CPU ou uma paralisação do sistema operacional (swapping, discos lentos); para o enqueue do control file (CF), esse tempo é definido por _controlfile_enqueue_timeout (padrão 900 s). Parâmetros ocultos (com underscore) só devem ser alterados sob orientação do Oracle Support. Geralmente causado por latência de armazenamento ou processos lentos como LGWR/CKPT.

Como resolver

Analise o alert.log e o arquivo de trace do processo encerrado para determinar qual enqueue (geralmente o do control file) e qual processo de background é responsável. A causa real costuma ser a latência de armazenamento/I/O: verifique os tempos de resposta do disco, o multipath e a saúde da controladora. Reduza a pressão de CPU/memória e o uso de swap. Se o erro se repetir, compartilhe a análise do trace com o Oracle Support.

Abrir no DBAtlas →

Mais entradas deste banco