sql >> Database teknologi >  >> RDS >> Oracle

Sådan dræber du alle aktive og inaktive oracle-sessioner for brugeren

KILL SESSION kommandoen dræber faktisk ikke sessionen. Den beder blot sessionen om at dræbe sig selv. I nogle situationer, som f.eks. at vente på et svar fra en ekstern database eller at rulle tilbage transaktioner, vil sessionen ikke slå sig selv ihjel med det samme og vil vente på, at den aktuelle handling er fuldført. I disse tilfælde vil sessionen have status som "markeret til dræb ". Den bliver så aflivet hurtigst muligt.

Kontroller status for at bekræfte:

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

Du kan også bruge IMMEDIATE klausul:

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

IMMEDIATE klausulen påvirker ikke det arbejde, der udføres af kommandoen, men det returnerer kontrollen tilbage til den aktuelle session med det samme, i stedet for at vente på bekræftelse af drabet. Tag et kig på Killing Oracle Sessions.

Opdater Hvis du vil slå alle sessionerne ihjel, kan du bare forberede et lille script.

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

Spool ovenstående til en .sql fil og kør det, eller kopier indsæt outputtet og kør det.



  1. Hvordan Tanh() virker i PostgreSQL

  2. MED KONTROL TILFØJ BEGRÆNSNING efterfulgt af KONTROLBEGRÆNSNING vs. TILFØJ KONSTRAINT

  3. Hvordan kan jeg midlertidigt deaktivere en fremmednøglebegrænsning i MySQL?

  4. MuleSoft omfavner GraphQL til at fremme API-integration