IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

ORA-00031 : session déjà marquée pour fermeture


Sujet :

Oracle

  1. #1
    Membre averti Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    Points : 433
    Points
    433
    Par défaut ORA-00031 : session déjà marquée pour fermeture
    Bonjour

    j'ai une session sous Oracle sous 10g qui a été tuée, qui est au statut Killed mais qui n'est pas encore fermé (verrou encore présent dans v$access), et quand j'essaie un alter session kill j'ai donc l'erreur ORA-00031

    sauriez-vous faire lâcher prise à cette session qui ne fait rien du tout (aucun rollback, 0 en processus)

    Merci

  2. #2
    Expert Oracle confirmé

    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Mars 2003
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2003
    Messages : 448
    Points : 926
    Points
    926
    Par défaut
    Bonjour,

    En règle générale, pour tuer une session sous Oracle, on s'en sort par un ALTER SYSTEM KILL SESSION.

    Dans certains cas, il arrive malheureusement que la session perdure avec ce fameux status KILLED.

    Dans ce cas, on essaye, sous Unix, un kill -9 du process en charge de cette session (PS : pour Windowds, il existe un utilitaire nommé ORAKILL qui est l'équivalent du kill -9 d'Unix).

    Et si cela ne suffit pas, je ne vois qu'un arrêt / relance de la base.

  3. #3
    Membre averti Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    Points : 433
    Points
    433
    Par défaut
    Le KILL -9 en a eu raison

    Merci.

  4. #4
    Membre averti Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    Points : 433
    Points
    433
    Par défaut
    Citation Envoyé par rouardg
    Bonjour,

    En règle générale, pour tuer une session sous Oracle, on s'en sort par un ALTER SYSTEM KILL SESSION.

    Dans certains cas, il arrive malheureusement que la session perdure avec ce fameux status KILLED.

    Dans ce cas, on essaye, sous Unix, un kill -9 du process en charge de cette session (PS : pour Windowds, il existe un utilitaire nommé ORAKILL qui est l'équivalent du kill -9 d'Unix).

    Et si cela ne suffit pas, je ne vois qu'un arrêt / relance de la base.
    Sais-t où je peux me procurer ORAKILL :

  5. #5
    Expert Oracle confirmé

    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Mars 2003
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2003
    Messages : 448
    Points : 926
    Points
    926
    Par défaut
    De mémoire, j'ai du utiliser une fois ORAKILL sur une base Oracle sous Windows.

    ORAKILL.EXE doit être au même endroit que SQLPLUS.EXE, à savoir sous ORACLE_HOME\bin

  6. #6
    Membre confirmé
    Homme Profil pro
    xxxxxxxxx
    Inscrit en
    Avril 2015
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : xxxxxxxxx

    Informations forums :
    Inscription : Avril 2015
    Messages : 394
    Points : 552
    Points
    552
    Par défaut Pb_kill_session
    Normalement sous sqlplus, cela : alter system kill session 'sid,serial#' immediate , ou
    alter system disconnect session 'sid,serial#' immediate suffit !!

  7. #7
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Je rajoute mon petit grain de sel car j'ai eu le même souci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL> ALTER SYSTEM KILL SESSION '945,27812' immediate;
    ALTER SYSTEM KILL SESSION '945,27812' immediate
    *
    ERROR at line 1:
    ORA-00031: session marked for kill
    En cherchant sur le net, il est dit de laisser, si possible, Oracle killer la session car lors de longs Insert ou Update, le kill n'est pas effectif immédiatement.
    Néanmoins la session est marquée "A killer" et Oracle, dans mon cas, l'a fait en 10 secondes.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  8. #8
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Si il a un gros ROLLBACK à faire, il va falloir lui laisser le temps.
    Killer le processus serveur ne fait que cacher le job du rollback.
    L'autre technique, si vous pouvez vous le permettre, c'est de redémarrer l'instance.
    Dans ce cas, Oracle redémarre, lit ce qu'il doit réexécuter (les trx commitées mais pas encore checkpointées) et supprime les trx non commitées...
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  9. #9
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Merci Fabien, c'est bien de se souvenir qu'effectivement le kill fait un rollback et que celui-ci peut durer très très longtemps sans que cela signifie un problème en base.
    Idem pour le shutdown abort ou immediate... ça peut prendre des plombes.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Licenciement pour fermeture d'un service
    Par lapanne dans le forum Licenciement
    Réponses: 9
    Dernier message: 11/07/2007, 16h20
  2. Réponses: 7
    Dernier message: 15/05/2007, 14h29
  3. Réponses: 5
    Dernier message: 24/10/2006, 11h56
  4. Champ heure pour fermeture
    Par Renardo dans le forum Access
    Réponses: 8
    Dernier message: 21/08/2006, 09h35
  5. Erreur ORA-21000 en PL/SQL pour un trigger
    Par keuhlu dans le forum PL/SQL
    Réponses: 3
    Dernier message: 12/03/2006, 08h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo