Oracle 7.3 bis Oracle 23c 20+ Jahre Erfahrung Version (Freigegeben: )

Oracle Session wartet auf Freigabe eines Locks

26 Apr 2019

Oracle Session wartet – das ist ein bekanntes Problem in Datenbanken mit besonders stark konkurrierenden Updates auf dieselben Datensätze. Wenn eine Datenbank-Session einen Datensatz für längere Zeit blockiert hält, kann das sehr unangenehme Folgen haben – im schlimmsten Fall sogar Auswirkungen auf ein produktives System. Es ist daher sehr wichtig, den Verursacher solcher Blocks schnell zu identifizieren.

Mit Hora, dem wichtigsten Oracle Tool von KeepTool, konnte man auch schon in älteren Versionen über den Session-Monitor Informationen abfragen wie z.B.

  • Welche Sessions sind aktuell mit der Datenbank verbunden?
  • Welche Session hat eine offene Transaktion?
  • Welche Session hält aktuell ein Lock?
  • Welche Session wartet auf welche Ressourcen?
  • Welche SQL-Anweisung wird von der Session gerade ausgeführt?
  • Zu welcher Client-Computer und welcher Anwendung gehört die Session?

Im Fall von blockierenden Locks, gibt die Seite “Lock Wait Graph” Aufschluss über die Abhängigkeit von blockierenden und wartenden Sessions. Die Baumansicht zeigt im Wurzeleintrag zunächst die blockierende Session mit folgende Eigenschaften an:

  • SID (Session ID der blockierenden Session)
  • Terminal (Computername des Clients)
  • Program (Client-Anwendung)
  • User (Oracle-Benutzer, mit dem sich die Anwendung zur Datenbank verbunden hat.

Darunter sehen Sie alle Sessions, die auf die obere warten, mit folgenden Informationen:

  • SID (Session ID der wartenden Session)
  • Lock Modus.

Unterhalb dieser Ebene können ggf. weitere Sessions stehen, falls die wartende Session ebenfalls ein Blocker ist, auf den andere Sessions warten.

Neu in Version 14.0.6 ist das folgende Feature: Wenn eine Session ein Lock hält, kann man sich sogar den Datensatz anzeigen lassen, der gesperrt ist. Auf diese Weise lassen sich Block-Situationen noch schneller analysieren und auflösen.

Im Notfall können Sie als  Benutzer mit DBA-Rechten über eine Schaltfläche oder das Kontextmenü der rechten Maustaste und “Kill Session” die blockierende Session beenden. Dadurch wird der blockierende Lock freigegeben, und die wartenden Sessions können weiter arbeiten.

Oracle Session wartet – dieses Problem ist Dank KeepTool und dem Session Monitor sehr schnell zu analysieren und zu beheben.

See how it works!

Entdecken Sie die Möglichkeiten von KeepTool.

i,g