Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment dépanner ORA-02049 et verrouiller les problèmes en général avec Oracle

Une façon possible pourrait être d'augmenter le INIT.ORA paramètre pour distributed_lock_timeout à une plus grande valeur. Cela vous donnerait alors plus de temps pour observer le v$lock table car les serrures dureraient plus longtemps.

Pour réaliser l'automatisation de cela, vous pouvez soit

  • Exécutez une tâche SQL toutes les 5 à 10 secondes qui enregistre les valeurs de v$lock ou la requête que sandos a donnée ci-dessus dans une table, puis analysez-la pour voir quelle session a causé le blocage.

  • Exécutez un STATSPACK ou un AWR Signaler. Les sessions verrouillées doivent apparaître avec un temps écoulé élevé et peuvent donc être identifiées.

v$session a 3 colonnes supplémentaires blocking_instance, blocking_session, blocking_session_status qui peut être ajouté à la requête ci-dessus pour donner une image de ce qui est verrouillé.