sql >> Base de Datos >  >> RDS >> Oracle

Cómo solucionar problemas de ORA-02049 y bloquear problemas en general con Oracle

Una forma posible podría ser aumentar el INIT.ORA parámetro para distributed_lock_timeout a un valor mayor. Esto le daría más tiempo para observar el v$lock mesa ya que las cerraduras durarían más.

Para lograr la automatización de esto, puede

  • Ejecute un trabajo SQL cada 5-10 segundos que registre los valores de v$lock o la consulta que sandos ha dado anteriormente en una tabla y luego analícela para ver qué sesión estaba causando el bloqueo.

  • Ejecute un STATSPACK o un AWR Reporte. Las sesiones que se bloquearon deberían aparecer con mucho tiempo transcurrido y, por lo tanto, se pueden identificar.

v$session tiene 3 columnas más blocking_instance, blocking_session, blocking_session_status que se puede agregar a la consulta anterior para dar una idea de lo que se bloquea.