Wir haben BI-Software und eine Repository-Datenbank verwendet, die auf Oracle Enterprise 11gR2 installiert sind.
Einige dieser Stapelberichte versuchen, auf eine Datenbanktabelle zuzugreifen, die möglicherweise noch gesperrt ist. Wie kann ich herausfinden, ob eine Oracle-Tabelle gesperrt ist oder nicht? Gibt es eine SQL-Anweisung, die Verlaufsdetails für die Analyse anzeigt?
oracle-11g-r2
locking
business-intelligence
Selahattin
quelle
quelle
Antworten:
Die folgende Abfrage enthält Details zu allen Sperren.
quelle
Das folgende Skript kann verwendet werden, um alle Sperrobjekte in Ihrem Oracle-System schnell zu identifizieren.
Referenz: -Oracle Tips von Burleson Consulting http://www.dba-oracle.com/t_find_oracle_locked_objects.htm
quelle
Sie können die aktuell gesperrten Objekte in V $ LOCKED_OBJECT abfragen .
Es gibt jedoch keinen Verlauf für die Sperren, da das Protokollieren aller Sperren einen hohen Leistungsaufwand verursachen und viele Daten gespeichert werden müssen.
Das Protokoll für aktive Sitzungen in der Datenbank ist das Protokoll für aktive Sitzungen V $ ACTIVE_SESSION_HISTORY , DBA_HIST_ACTIVE_SESS_HISTORY (sofern Sie über die entsprechende Lizenz verfügen), in dem Sie blockierende Sitzungen, Anweisungen und andere Informationen, jedoch keine gesperrten Tabellen anzeigen können. Andernfalls können Sie versuchen, die entsprechenden Ansichten abzufragen und die erforderlichen Daten mit Ihrem eigenen benutzerdefinierten Skript zu speichern.
quelle
Mit der folgenden Abfrage können Sie Sperren für die Tabelle ermitteln.
Sperren
quelle
Wenn Sie die Sperre für gesperrte Objekte aufheben möchten, beenden Sie die entsprechende Sitzung.
quelle
Sie können die Tabellensperre überprüfen
v$lock
unddba_objects
anzeigen. Die folgende Abfrage gibt Ihnen die Details der Sperre.ABFRAGE 2:
Sie können die folgende Abfrage verwenden, um weitere Details zu erhalten. Tischsperre
quelle