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

So beenden Sie alle aktiven und inaktiven Oracle-Sitzungen für den Benutzer

Die KILL SESSION Befehl tötet nicht wirklich die Sitzung. Es fordert die Sitzung lediglich auf, sich selbst zu beenden. In einigen Situationen, z. B. beim Warten auf eine Antwort von einer entfernten Datenbank oder beim Zurücksetzen von Transaktionen, beendet sich die Sitzung nicht sofort selbst und wartet auf den Abschluss der aktuellen Operation. In diesen Fällen hat die Sitzung den Status „zum Abbruch markiert ". Es wird dann so schnell wie möglich getötet.

Prüfen Sie zur Bestätigung den Status:

SELECT sid, serial#, status, username FROM v$session;

Sie können auch IMMEDIATE verwenden Klausel:

ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;

Der IMMEDIATE -Klausel wirkt sich nicht auf die vom Befehl ausgeführte Arbeit aus, gibt jedoch die Kontrolle sofort an die aktuelle Sitzung zurück, anstatt auf die Bestätigung des Kills zu warten. Sehen Sie sich Killing Oracle Sessions an.

Aktualisieren Wenn Sie alle Sitzungen beenden möchten, können Sie einfach ein kleines Skript vorbereiten.

SELECT 'ALTER SYSTEM KILL SESSION '''||sid||','||serial#||''' IMMEDIATE;' FROM v$session;

Spule obiges in eine .sql Datei und führe sie aus, oder kopiere die Ausgabe und füge sie ein und führe sie aus.