Samedi 11 juin 2011 6 11 /06 /Juin /2011 11:52

 

ORACLE SQL ALTER SYSTEM KILL SESSION

Comment tuer, déconnecter une session utilisateur existante ou tuer un processus d'arrière-plan Oracle?.

Syntax commande SQL ALTER SYSTEM KILL/DISCONNECT SESSION.

 
ALTER SYSTEM  { DISCONNECT SESSION 'sid, serial#' [ POST_TRANSACTION | IMMEDIATE ]} ;
ALTER SYSTEM  { KILL SESSION 'sid, serial#' [ IMMEDIATE ]} ;

 

Trouver  une session active Oracle avec les vues GV$ (G=Grid=RAC)

 
 
SQL> COLUMN inst_id FORMAT 9999
SQL> COLUMN sid FORMAT 9999
SQL> COLUMN serial# FORMAT 9999999
SQL> COLUMN spid FORMAT 9999
SQL> COLUMN username FORMAT A10
SQL> COLUMN program FORMAT A30
SQL> SET LINESIZE 150
SQL> SELECT s.inst_id,
  2           s.sid,
  3           s.serial#,
  4           p.spid,
  5           s.username,
  6           s.program
  7    FROM   gv$session s
  8           JOIN gv$process p ON p.addr = s.paddr AND p.inst_id = s.inst_id;

INST_ID   SID  SERIAL# SPID         USERNAME   PROGRAM
------- ----- -------- ------------ ---------- ------------------------------
      1   170        1 5788                    ORACLE.EXE (PMON)
      1   169        1 5236                    ORACLE.EXE (PSP0)
      1   168        1 1304                    ORACLE.EXE (MMAN)
      1   167        1 4076                    ORACLE.EXE (DBW0)
      1   166        1 5328                    ORACLE.EXE (LGWR)
      1   165        1 3572                    ORACLE.EXE (CKPT)
      1   164        1 3932                    ORACLE.EXE (SMON)
      1   163        1 2292                    ORACLE.EXE (RECO)
      1   162        1 4000                    ORACLE.EXE (MMON)
      1   161        1 6064                    ORACLE.EXE (MMNL)
      1   160        3 5228                    ORACLE.EXE (q000)

INST_ID   SID  SERIAL# SPID         USERNAME   PROGRAM
------- ----- -------- ------------ ---------- ------------------------------
      1   158        1 6084                    ORACLE.EXE (ARC0)
      1   157        1 4432                    ORACLE.EXE (ARC1)
      1   140       14 3036         SYS        sqlplus.exe
      1   153        1 5912                    ORACLE.EXE (QMNC)
      1   143        5 4912         SYS        sqlplus.exe
      1   141       55 3804         SYSADM     toad.exe
      1   150        1 444                     ORACLE.EXE (CJQ0)
      1   148        1 3944                    ORACLE.EXE (q001)

19 rows selected.

SQL>

 

Trouver  une session qui a une Transaction active.

 
 
SQL> COLUMN STATUS FORMAT A10
SQL> COLUMN PROGRAM FORMAT A20
SQL> COLUMN MODULE FORMAT A20
SQL> SELECT   T.STATUS,
  2           T.START_TIME,
  3           S.INST_ID,
  4           S.SID,
  5           S.SERIAL#,
  6           S.USERNAME,
  7           S.PROGRAM,
  8           S.MODULE
  9    FROM      GV$TRANSACTION T
 10           JOIN GV$SESSION S ON T.SES_ADDR = S.SADDR;

STATUS     START_TIME           INST_ID   SID  SERIAL# USERNAME   PROGRAM              MODULE
---------- -------------------- ------- ----- -------- ---------- -------------------- -------------
ACTIVE     06/11/11 11:57:48          1   140       14 SYS        sqlplus.exe          sqlplus.exe

SQL>

 

KILL SESSION ORACLE.

 
SQL> ALTER SYSTEM KILL SESSION '140,14';

SQL> ALTER SYSTEM KILL SESSION '140,14' IMMEDIATE;

En RAC 10G
SQL> ALTER SYSTEM KILL SESSION '140,14,1';

En RAC 11G
SQL> ALTER SYSTEM KILL SESSION '140,14,@1';

 

DISCONNECT SESSION ORACLE.

 
Attends la fin de la transaction existante et deconnexion (POST_TRANSACTION)

SQL> ALTER SYSTEM DISCONNECT SESSION '140,14' POST_TRANSACTION;

SQL> ALTER SYSTEM DISCONNECT SESSION '140,14' IMMEDIATE;

 

Tuer une session Oracle avec ORAKILL à partir du système d'exploitation Windows.

 
 
INST_ID   SID  SERIAL# SPID         USERNAME   PROGRAM
------- ----- -------- ------------ ---------- ------------------------------
      1   158        1 6084                    ORACLE.EXE (ARC0)
      1   157        1 4432                    ORACLE.EXE (ARC1)
      1   140       14 3036         SYS        sqlplus.exe
      1   153        1 5912                    ORACLE.EXE (QMNC)
      1   143        5 4912         SYS        sqlplus.exe
      1   141       55 3804         SYSADM     toad.exe
      1   150        1 444                     ORACLE.EXE (CJQ0)
      1   148        1 3944                    ORACLE.EXE (q001)

C:\> orakill 'instance_name' 'spid' 
C:\> orakill dbtest 3036

 

Tuer un process Oracle avec kill -9 sous UNIX.

 
 
% ps -ef | grep DBTEST

  oracle  4200   1  0 12:54:10 ?  0:01 ora_smon_DBTEST
  oracle  4201   1  0 12:54:10 ?  0:00 ora_arc0_DBTEST
  oracle  4210   1  0 12:54:10 ?  0:02 ora_lgwr_DBTEST
  oracle  4212   1  0 12:54:10 ?  0:00 ora_ckpt_DBTEST
  oracle  4230   1  2 11:32:19 ?  0:00 oracleTARGDB (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
  oracle  4237   1  0 12:54:10 ?  0:20 ora_qmn0_DBTEST
  oracle  4321   1  0 12:54:10 ?  0:00 ora_arc1_DBTEST
  oracle  4325   1  0 12:54:11 ?  0:00 ora_dbw0_DBTEST
  oracle  4340   1  0 12:54:11 ?  0:00 ora_reco_DBTEST
  oracle  4376   1  0 12:54:11 ?  0:02 ora_pmon_DBTEST
  oracle  4389   1  0 12:54:11 ?  0:00 ora_cjq0_DBTEST

% kill -9 4230

 

Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
• Oracle USER Quota - Account Lock Unlock - Expire
• Create USER Oracle
Par Daniel Roesch - Publié dans : SECURITE - USER
Ecrire un commentaire - Voir les 0 commentaires
Retour à l'accueil

Rechercher Articles Oracle SQL sur ce Site.

Loading

À lire aussi…

Download PDF Oracle

Rechercher sur le site

Oracle 10G - DBA -

Syndication

  • Flux RSS des articles
Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus - Articles les plus commentés