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 :

Nb d ' utilisteurs connectés et vue v$session


Sujet :

Administration Oracle

  1. #1
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 741
    Points
    741
    Billets dans le blog
    1
    Par défaut Nb d ' utilisteurs connectés et vue v$session
    Bonjour tout le monde

    Oracle 8.1.7 sous w2k .

    Je voudrais connaitre le nb d' utilisateurs qui s' est connectés à une base .
    Je pense écrire une proc plsql qui interrogera la vue v$session .

    Auparavant , je voudrais être sur qu' oracle n' aurait pas déjà
    créé un package qui ferait la même chose .
    Je n' ai rien trouvé dans la doc mais comme je ne suis pas développeur,
    j' ai peut-être mal cherché .

    Si quelqu' un a déjà fait un truc similaire et peut me donner des infos,
    je suis preneur .

    cdlt

  2. #2
    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
    Bonjour

    Une solution simple, c'est de créer un déclencheur AFTER LOGON dans lequel on alimente une table des connexions.

    Ah tiens d'ailleurs la question a déjà été posée il y a quelques jours :
    http://www.developpez.net/forums/viewtopic.php?t=154514
    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

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Points : 605
    Points
    605
    Par défaut
    tu devrais te renseigner concernant les possibilité d'audit d'Oracle ; cela te renseignera sur les activités de login/logout de chacun de tes utilisateurs ; le résultat peut être stocké (automatiquement) dans une table

    en fait tu dois paramétrer AUDIT_TRAIL = DB du fichier d'initialisation de ta db
    ensuite via SYS, tu lances une commade de type AUDIT (AUDIT CONNECT dans ton cas) et voila, Oracle trace pour toi les connect de chaque user dans une table système ; plusieurs vues existent selon le type d'info recherchées mais la vue générale est DBA_AUDIT_TRAIL

    pour des infos plus pointues et nécessaires pour la mise en place de cet audit, rendez-vous chapitre

    voila j'espère que cela t'aidera

  4. #4
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 741
    Points
    741
    Billets dans le blog
    1
    Par défaut
    Oui , j' avais bien pensé à l' audit mais c' est un peu trop par rapport
    à ce que je cherche ( nb maximum d' utilisateurs connectés par jour simultanément ).

    Le trigger logon est intéresant ( j' y réfléchis ) mais il faut que je tienne
    compte des déconnexions et reconnexions , cela me semble
    plus compliqué que d' interroger la vue v$session .

    cdlt

  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
    C'est quoi le but du jeu plus exactement ?
    Savoir combien de personnes sont actuellement connectées ?
    Savoir combien de personnes étaient connectées simultanément à un certain moment dans le passé ?
    Savoir quand a eu lieu le plus fort pic de connexions ?
    etc...
    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 éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 741
    Points
    741
    Billets dans le blog
    1
    Par défaut
    Le but est effectivement de récupérer le nb maximum d' utilisateurs
    qui se sont connéctés à un instant t dans la journée .

    je pensais comparer le nb de sessions ouvertes (diminuées de celles
    prises par system et autres) à une valeur MB ,
    et renseigner cette derniere avec la plus grande des deux , cela
    par un trigger du style after insert sur v$session .
    Ainsi cette valeur MB représenterait toujours le max .

  7. #7
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Points : 605
    Points
    605
    Par défaut
    quelles infos te semblent être en trop via AUDICT CONNECT ?

    tu vas programmer beaucoup de chose pour finalement un résultat très similaire à l'audit_trail ...

  8. #8
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 741
    Points
    741
    Billets dans le blog
    1
    Par défaut
    Non, non , je n' ai pas dit qu' il y avait trop d' infos , c' est simplement
    que je n' ai jamais mis ces outils en place ...
    j' ai peur d ' y passer beaucoup de temps car je dois faire ça sur
    une dizaines de bases .

    et de plus , n' est-ce pas pénalisant pour les performances ?, bien qu' en temps cpu j' ai de la marge sur les serveurs concernés .

    merci en tout cas

    cdlt

  9. #9
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Points : 605
    Points
    605
    Par défaut
    l'audit va simplement faire la même chose que toi avec ton trigger, tes insert etc ... sauf que là c'est gèré par Oracle

    lis le chapitre sur l'audit dans l'administrator guide, ce n'est vraiment pas compliqué à mettre en place

    et lis l'avis de Tom Kyte à ce sujet
    http://<br /> http://asktom.oracle....3957439,<br />

    bonne chance[/url]

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Points : 43
    Points
    43
    Par défaut
    salut,

    comme le disait pomalaix, la question de stocker des informations sur les users a déjà été traitée, notament par des triggers.

    Je pense que si dans ton trigger after logon tu comptes le nombre d'entrées dans v$session, tu as alors tout le loisir de garder le nombre maximum de user connectés à un instant T.
    don't worry, be happy!

  11. #11
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Points : 605
    Points
    605
    Par défaut
    et je crois que cela revient au même qu'un audit connect ...

    pourquoi ne pas utiliser les "built-in" fournis par Oracle

    keep it simple

  12. #12
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 741
    Points
    741
    Billets dans le blog
    1
    Par défaut
    Petite question subsidiaire :

    Le trigger after logon se déclenche-t-il aprés une insertion dans la vue
    v$session , en même temps ou avant ?
    (ou peut-être qu' il s' execute sur cette vue ? )

    cordialement

    et merci pout toutes vos réponses qui font avancer le schmilblik

    didier

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Marc Musette
    et je crois que cela revient au même qu'un audit connect ...
    Non je ne suis pas d'accord en ce qui concerne le pb de ducho. Comment tu ferais alors pour déterminer à un instant T combien il y a eu de connexions simultanées au maximum au cours de la journée qui vient de s'écouler via le résultat de l'audit connect?

    DUCHO: Le trigger after logon s'exécute une fois qu'une session vient de s'initier, donc la vue v$session a déjà été mise à jour lorsque tu rentres dans le trigger after logon.!

    Pour info, ce trigger est très largement utilisé pour rediriger des users sur d'autres shémas, ou encore pour mettre à jour des synonyms dans un shéma en fonction de certains privilèges ou roles!

    Courage
    May the force be with you
    don't worry, be happy!

  14. #14
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 741
    Points
    741
    Billets dans le blog
    1
    Par défaut
    Merci beaucoup ,

    Je vais mettre en place cette solution ...

  15. #15
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Points : 605
    Points
    605
    Par défaut
    je commence à douter de la bonne volonté de chacun ... je me demande si les liens que je poste sont lus ...

    pour clore le débat, voici la description de la vue DBA_AUDIT_TRAIL

    http://download-west.oracle.com/docs...05.htm#1307791

    si vous prenez la peine de la lire, vous verrez que cette vue renseigne dans les colonnes TIMESTAMP et LOGOFF_TIME les moments de connexion/déconnexion ... il suffit alors d'un simple SELECT que je vous laisse le loisir de trouver

    il est temps d'arrêter de jeter le discrédit sur les solutions apportées par d'autre SANS LES JUSTIFIER !!! personne n'a la science infuse et c'est pourquoi je propose autant que faire se peut une référence à mes réponses ! j'aimerais que lorsqu'elles sont démontées, elles le soient avec méthode

    MERCI

  16. #16
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 741
    Points
    741
    Billets dans le blog
    1
    Par défaut
    Hey Marc,

    Je ne voulais pas te vexer , pour moi c' est cool de tester un trigger,
    cela me permet de faire un peu de plsql ce qui est trés rare .
    Je promets que je vais lancer aussi l' audit pour mieux connaitre
    ce produit .

    cdlt
    didier

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Points : 43
    Points
    43
    Par défaut
    ok marc,
    Je suis d'accord avec toi pour l'audit connect. J'ai bien lu tes posts et ok pour celà. D'ailleurs pour ceux qui veulent mettre en pratique l'audit connect et voir à quoi ressemble une requête dans la table DBA_AUDIT_SESSION, je vous donne un lien où tout est déjà fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.jlcomp.demon.co.uk/audit.html
    Par contre tu parles de requête simple pour obtenir le nombre maximal de connexions simultannées sur les dernières 24 heures: Je pense que cette requête n'est pas si simple à mettre en place. est ce que je me trompe?
    don't worry, be happy!

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par BrunoJ
    Personnellement, ça me rend nerveux d'effectuer une mise à jour dans un logon de connexion.
    Si la mise à jour foire ou reste bloqué (problème d'archivelog, problème sur le tablespace où l'on insère les résultats), on ne peut plus se connecter !
    SVP peux tu me donner UN cas où le trigger after logon empecherrai un utilisateur de se connecter ?.
    De plus, par expérience, j'utilise ce type de trigger assez frequemment, sur mes bases ou sur les bases de clients, je n'ai JAMAIS eu de problème de connexion
    Attention un trigger after logon n'est pas un trigger DML. Pour toi, j'ai l'impression que la notion sensible est la transaction qui effectivement est annulée si le trigger "plante"!
    Cependant, si tu as des exemples contraires, je suis curieux de les lire
    don't worry, be happy!

  19. #19
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Points : 605
    Points
    605
    Par défaut
    Citation Envoyé par Patmane
    ...
    Par contre tu parles de requête simple pour obtenir le nombre maximal de connexions simultannées sur les dernières 24 heures: Je pense que cette requête n'est pas si simple à mettre en place. est ce que je me trompe?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select a.sessionid, a.timestamp, a.logoff_time, count(*) nbr_session_simu
    from (select distinct sessionid, timestamp, logoff_time from dba_audit_trail) a,
         (select distinct sessionid, timestamp, logoff_time from dba_audit_trail) b
    where b.timestamp between a.timestamp and a.logoff_time
    group by a.sessionid, a.timestamp, a.logoff_time
    vous donne pour chaque session, le nombre maximal de sessions simultanées --> un select max de ce nombre vous donnera la réponse à votre question

    l'avantage de l'audit, c'est qu'il est fourni par Oracle : il suffit de le paramètrer et d'interprèter les résultats et "qui peut le plus, peut le moins"

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Points : 43
    Points
    43
    Par défaut
    Merci marc,

    Par contre je ne me rappelle plus: Il me semble que "l'audit" n'audite pas les actions de l'utilisateur SYS. Est ce toujours le cas?
    don't worry, be happy!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-2003] Comment me connecter à une vue liée à un serveur SQL
    Par labjon01 dans le forum VBA Access
    Réponses: 0
    Dernier message: 28/11/2011, 19h24
  2. Réponses: 2
    Dernier message: 03/02/2009, 23h49
  3. Relation n:n, vues et session
    Par barnoufal dans le forum Ruby on Rails
    Réponses: 5
    Dernier message: 26/02/2008, 15h40
  4. PL/SQL : vue v$session
    Par madina dans le forum PL/SQL
    Réponses: 1
    Dernier message: 31/05/2006, 10h14

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