2012-12-12 8 views
15

Ich habe ein Problem, wenn ich versuche, einen Spaltenwert in sqlplus zu aktualisieren.Sperren in Oracle entfernen 10

Es wird im Grunde nicht abgeschlossen und hängt nur. Ich frage mich, ob es da doch irgendwo Schlösser in Orakel gewaltsam zu entfernen gibt?

Ich habe eine Tabelle namens v $ locked_object bemerkt, die eine onject ID enthält, die für das Problem relevant ist, das ich habe.

Ich hoffe, ich habe das gut genug erklärt.

Vielen Dank im Voraus für jede Hilfe!

+1

Haben Sie _what_ Prozess gefunden Sperrte das Objekt und was machte dieser Prozess? Sicherlich ist es besser, das Problem zu beheben, als herumzuhacken? (Ich bin ziemlich sicher, dass die Antwort auf Ihre Frage nein ist). – Ben

Antwort

46

Dies wird genau Ihren Zweck dienen:

SELECT SESSION_ID FROM DBA_DML_LOCKS WHERE NAME = <TABLE_NAME>; 

Verwenden Sie die SESSION_ID die entsprechende SERIAL# mit dieser Aussage zu finden:

SELECT SID, SERIAL# FROM V$SESSION WHERE SID IN (
    SELECT SESSION_ID FROM DBA_DML_LOCKS WHERE NAME = <TABLE_NAME> 
); 

Finde die säumige SID, SERIAL# Tupel und lassen Sie es wie folgt aus:

+0

Ich konnte dieses Problem beheben, indem ich die Halte-Sitzung innerhalb der Anwendung nach dem Überprüfen von dba_blockers fand. Aber wird sich an den Befehl ALTER für die Zukunft erinnern. Kann die Antwort nicht abstimmen wegen zu niedriger Rep. Danke –

+0

Ich denke du kannst jetzt abstimmen :) Danke – Mari

0

Wahrscheinlich hat jemand anderes die gleiche Tabelle aktualisiert und hat sich noch nicht verpflichtet. Es könnte sogar Sie sein (in einem anderen Tool oder einer anderen Sitzung).

Der einfachste Weg, die Sperre loszuwerden, besteht darin, die Arbeit in der anderen Sitzung zu übernehmen.

+0

Hallo Ich habe es geschafft, die Ursache dieses Problems zu finden, indem Sie in DBA_BLOCKERS suchen. Habe die Session ID bekommen und habe sie gelöscht. –

1

Verwaltet, um dieses Problem zu beheben.

Ich schaute in DBA_BLOCKERS Tabelle und bekam die Sitzungs-ID. Dann wurde die Sitzung beendet und die Sperre wurde entfernt.