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 :

[OUTIL]Outil de trace SQL entre 1 client et 1 serveur [FAQ]


Sujet :

Oracle

  1. #1
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut [OUTIL]Outil de trace SQL entre 1 client et 1 serveur
    Oracle 9i R2 sous XP Pro sp1

    Bonjour,
    je recherche un outil gratuit permettant de tracer les ordres qu'un poste client envoi vers un serveur ou sur un serveur la dernière requête exécutée par une session particuliére.

    J'utilise l'outil d'admin graphique livré avec Oracle server, je ne me souviens plus de son nom, mais la derniére requête visible d'une session ne correspond pas à celle 'envoyée' par le poste.

    Merci

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Tu peux utiliser oradebug qui permet de tracer une session via SQL*Plus :

    D'abord il faut récupérer le spid :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select spid from v$process a, v$session b
    where a.addr = b.paddr 
    and sid = <SID>;
    ensuite initialiser la trace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oradebug setospid <SPID>
    et lancer le début de celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oradebug event 10046 trace name context forever, level (8)
    le level peut être modifié selon le niveau de détail que tu recherches.

    Enfin, tu arrêtes la trace avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oradebug event 10046 trace name context off
    Tout cela te génére un fichier trace dans le répertoire indiqué par le paramétre user_dump_dest. Tu peux appliquer un tkprof dessus pour rendre le fichier plus lisible

  3. #3
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    il existe également avec Oradebug 2 packages :

    dbms_system.set_ev
    et
    sys.dbms_system.set_sql_trace_in_session

    Ou tu n'a besoin que du SID et du SERIAL# , que tu trouves aisement dans la vue v$session

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT sid,serial# FROM v$session
    WHERE machine  like UPPER('%&machine%')

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Citation Envoyé par orafrance
    Tu peux utiliser oradebug qui permet de tracer une session via SQL*Plus :
    Pour Oradebug il vaut mieux apres avoir définit le shadow process , ne plus limiter la taille du fichier dump .Car cela évite d'avoir une trace coupé (attention quand même à la volumétrie de la trace )


  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Merci pour vos infos, je regarde de suite





    Vous pourriez peut être l'indiquer dans la FAQ Oracle ?

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Citation Envoyé par Laurent Dardenne
    Merci pour vos infos, je regarde de suite





    Vous pourriez peut être l'indiquer dans la FAQ Oracle ?
    Bone idée

    n'oublie pas le boutton résolue

  7. #7
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par Laurent Dardenne
    Vous pourriez peut être l'indiquer dans la FAQ Oracle ?
    certes

  8. #8
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Bon cela ne fonctionne pas comme prévu, il semblerais que les droits nécessaire coté serveur soient Sysdba :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SQL> oradebug setospid 212
    ORA-01031: privilèges insuffisants
    ...
    SQL> oradebug setospid 212
    ORA-00072: Le traitement "Windows thread id: 212, image: " n'est pas actif
     
    SQL> oradebug setospid 212
    ORA-01858: caractère non numérique rencontré à la place d'un numérique
    Pour le second message je ne comprend pas trop l'état actif pour une session, pour ces manipulations sur le soft client j'ouvre juste une session avant d'exécuter le traitement à tracer.
    Et il me faut connaitre le numéro de session pour paramètrer la méthode de trace indiquée plus haut.
    Pour le dernier msg je comprend pas du tout, la saisie est bien '212'

    Comme je recherche aussi une solution qui ne nécessite pas d'avoir les droits d'accès sur la console d'administration, j'essaie de configurer la trace coté client (ODP) mais sans succés pour le moment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Windows Registry Editor Version 5.00
     
    [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\ODP.NET\HOME]
    "TraceFileName"="D:\\Delphi-ODP\\ODPNET.trc"
    "TraceLevel"="2"
    "TraceOption"="0"
    Dans un premier temps si vous aviez une piste pour paramètrer la trace coté client ...

  9. #9
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    Si c'est un traçage temporaire, le paramètre TRACE_LEVEL_CLIENT du fichier sqlnet.ora ($ORACLE_HOME/network/admin) devrait vous convenir.

  10. #10
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Laurent , tu as besoin d'être connecté en tant que system ou sys ou tout autre compte ayant le rôle DBA

  11. #11
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jaouad
    Laurent , tu as besoin d'être connecté en tant que system ou sys ou tout autre compte ayant le rôle DBA
    J'ai bien compris.
    Les 2 solutions m'intéressent mais je vais privilégier celle coté client.
    Effectivement j'avais oublié la possibilité de modifier le fichier sqlnet.ora.

    J'ai pas encore les automatismes ...
    Merci

  12. #12
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Citation Envoyé par Laurent Dardenne
    Citation Envoyé par jaouad
    Laurent , tu as besoin d'être connecté en tant que system ou sys ou tout autre compte ayant le rôle DBA
    J'ai bien compris.
    Les 2 solutions m'intéressent mais je vais privilégier celle coté client.
    Effectivement j'avais oublié la possibilité de modifier le fichier sqlnet.ora.

    J'ai pas encore les automatismes ...
    Merci
    Veux tu juste récuperer les requêtes dans ce cas là la trace sqlnet est suffisante ou alors veux tu également analyser ces reqûêtes .
    dans le dernier cas je pense que ca ne serat pas suffisant

  13. #13
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jaouad
    Veux tu juste récuperer les requêtes dans ce cas là la trace sqlnet est suffisante
    Pour le moment oui, et le proposition de LeoAnderson suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TRACE_LEVEL_CLIENT=SUPPORT
    Je garde l'autre approche dans mes tiroirs au cas où.

    Merci

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/10/2008, 13h35
  2. 2 threads entre un client et un serveur
    Par baedal dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 02/03/2008, 19h36
  3. Intéropérabilité entre un client java et serveur dot net
    Par miss_2000 dans le forum Services Web
    Réponses: 1
    Dernier message: 01/12/2006, 10h54
  4. Réponses: 3
    Dernier message: 31/10/2006, 10h34
  5. Réponses: 11
    Dernier message: 07/10/2006, 18h37

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