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

Administration Oracle Discussion :

Sessions à l'état KILLED


Sujet :

Administration Oracle

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Août 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Août 2009
    Messages : 19
    Points : 16
    Points
    16
    Par défaut Sessions à l'état KILLED
    Bonjour,

    Nous avons un job qui, pour résumer, kill les sessions de la veille.
    le pb est que j'ai 3 sessions qui restent à l'état KILLED dans V$SESSION.

    Comment se fait-il que ces sessions soient toujours visibles ?
    Y a-t-il un moyen de les "purger" ?

    Merci d'avance.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 766
    Points : 52 563
    Points
    52 563
    Billets dans le blog
    5
    Par défaut
    Un KILL sur une session impose un ROLLBACK de la transaction. Cela signifie que tout le travail entamé doit être défait. Oracle va donc jouer le journal "à l'envers" (undo) pour replacer les "images avant" des données en mémoire.
    Ceci peut donc prendre du temps, d'autant plus de temps que vous avez beaucoup de données...

    Ceci dit, avoir un job qui "KILL" automatiquement des sessions, révèle généralement un grand désordre dans la conception de votre bases de données et de son implémentation... C'est généralement le signe d'une incompréhension du fonctionnement d'un SGBDR, voire d'une incompétence !

    la question est donc, comment et pourquoi en êtes vous arrivée là ?

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Sur des bases OLAP c'est assez courant de tuer toutes les sessions utilisateurs en début de soirée pour que les traitements de la nuit ne soient pas impactés par une requête consommatrice (si ce n'est foireuse) qui aurait pu être oubliée par quelqu'un.

    Ça garantit que la disponibilité des ressources.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Août 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Août 2009
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Un KILL sur une session impose un ROLLBACK de la transaction. Cela signifie que tout le travail entamé doit être défait. Oracle va donc jouer le journal "à l'envers" (undo) pour replacer les "images avant" des données en mémoire.
    Ceci peut donc prendre du temps, d'autant plus de temps que vous avez beaucoup de données...

    Ceci dit, avoir un job qui "KILL" automatiquement des sessions, révèle généralement un grand désordre dans la conception de votre bases de données et de son implémentation... C'est généralement le signe d'une incompréhension du fonctionnement d'un SGBDR, voire d'une incompétence !

    la question est donc, comment et pourquoi en êtes vous arrivée là ?

    A +
    Salut,

    je voulais juste savoir s'il était possible de forcer le kill.

    ... grand désordre dans la conception ... incompréhension du fonctionnement d'un SGBDR ... incompétence ... c'est dur !!!

    pour en revenir aux sessions à killer, nous avons donc un serveur applicatif qui se connecte à notre BDD.
    Le fait est qu'il nous arrive de devoir killer des sessions (par exemple utilisateur qui ne quitte pas proprement l'appli ...)


    Nous sommes une équipe de 5 personnes, et on prend tout en charge (maintenance, projets, installation serveur, haute dispo, etc...).
    on fait donc en fonction de nos connaissances et/ou compétences, car on en a quand même

  5. #5
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Pour essayer d'éviter les cas où une session d'un utilisateur qui ne s'est pas déconnecté proprement persiste en base, vous pouvez ajouter dans le sqlnet.ora du serveur le paramètre : SQLNET.EXPIRE_TIME=10, plus un petit redémarrage du listener.
    Ceci est censé tuer les sessions orphelines qui ne répondent plus depuis 10 minutes (mais ne résoudra probablement pas le cas des anciennes sessions déjà dans cet état).

    Il peut par ailleurs y avoir des circonstances particulières dans lesquelles effectivement des sessions en statut KILLED persistent anormalement pendant des heures, voire des jours.
    On doit alors les tuer explicitement au niveau de l'OS pour réussir à libérer les ressources.

    Sous Linux par exemple, il faut récupérer le SPID dans V$PROCESS et faire un kill -9 de ce processus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT    p.program, p.spid, s.saddr, s.sid, s.serial#, s.username,    s.osuser, s.machine, s.program, s.logon_time, s.status 
    FROM v$session s, v$process p
    WHERE s.paddr = p.addr
    AND s.sid =&SID;
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  6. #6
    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
    Citation Envoyé par maikeul;
    ... grand désordre dans la conception ... incompréhension du fonctionnement d'un SGBDR ... incompétence ... c'est dur !!!
    Laisse, il est toujours comme ça, certaines personnes ont un mauvais relationnel.
    En revanche ce que dit Pomalaix est plus intéressant :-)
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  7. #7
    Membre actif

    Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2008
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2008
    Messages : 167
    Points : 265
    Points
    265
    Par défaut
    pour la defense le mikeul. Je pense aussi qu'il y a bien plus de gain a faire des application bien conçu qu'a tenter de recoller les morceaux a posteriori. Mais souvent dans notre métier nous subissons de mauvais choix en bout de chaine. Arrêter les applications avant de tenter de killer les sessions est un début. Mais il faudrait étudier chaque requete qui doit être killée car il faudrait les éviter en amon. Elle ont probablement consomées beaucoup de ressource tout au long de la journée.

Discussions similaires

  1. [EJB3] Stateless Bean session avec état ?
    Par Invité dans le forum Java EE
    Réponses: 4
    Dernier message: 08/11/2010, 21h42
  2. Réponses: 7
    Dernier message: 24/05/2009, 18h49
  3. [EJB2.1] comment deployer EJB session sans état
    Par Bba_M dans le forum Java EE
    Réponses: 5
    Dernier message: 06/11/2006, 20h28
  4. Réponses: 2
    Dernier message: 29/03/2006, 11h39
  5. Réponses: 3
    Dernier message: 09/02/2006, 12h26

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