Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Anleitung zur Fehlerbehebung bei ORA-02049 und Sperrproblemen im Allgemeinen mit Oracle

Eine Möglichkeit wäre, die INIT.ORA zu erhöhen Parameter für distributed_lock_timeout auf einen größeren Wert. Das würde Ihnen dann eine längere Zeit geben, die v$lock zu beobachten Tabelle, da die Sperren länger dauern würden.

Um dies zu automatisieren, können Sie entweder

  • Führen Sie alle 5-10 Sekunden einen SQL-Job aus, der die Werte von v$lock protokolliert oder die Abfrage, die Sandos oben gegeben hat, in eine Tabelle ein und analysiere sie dann, um zu sehen, welche Sitzung die Sperre verursacht hat.

  • Führen Sie ein STATSPACK aus oder ein AWR Prüfbericht. Die Sitzungen, die gesperrt wurden, sollten mit einer hohen verstrichenen Zeit angezeigt werden und können daher identifiziert werden.

v$session hat 3 weitere Spalten blocking_instance, blocking_session, blocking_session_status die der obigen Abfrage hinzugefügt werden können, um ein Bild davon zu erhalten, was gesperrt wird.