Sess user trace file location

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Script SQL*Plus de diagnostic (Sessions)
Voir aussi Sess users

Sess user trace file location calcule le chemin et le nom exacts du fichier trace que produirait la session courante (par exemple après un ALTER SESSION SET SQL_TRACE=TRUE) — pratique pour retrouver immédiatement le bon fichier sans avoir à trier un répertoire par date/PID.

Contexte version : le script s'appuie sur le paramètre historique user_dump_dest. Depuis Oracle 11g, l'emplacement réel des traces est piloté par lAutomatic Diagnostic Repository (ADR, paramètre diagnostic_dest), sous <diagnostic_dest>/diag/rdbms/<db_unique_name>/<instance>/trace/ — Oracle maintient user_dump_dest en alias de compatibilité pointant vers ce même répertoire, donc le script reste valide, mais la convention de nommage du fichier (<instance>_ora_<pid>.trc) est celle imposée par l'ADR, pas directement configurable.

Script

SET TERMOUT OFF
COLUMN current_instance NEW_VALUE current_instance NOPRINT
SELECT rpad(instance_name, 17) current_instance FROM v$instance;
SET TERMOUT ON

PROMPT
PROMPT +------------------------------------------------------------------------+
PROMPT | Report   : User Session Trace File Location                            |
PROMPT | Instance : &current_instance                                           |
PROMPT +------------------------------------------------------------------------+

SET LINESIZE 180
SET PAGESIZE 50000
CLEAR COLUMNS
CLEAR BREAKS
CLEAR COMPUTES

COLUMN "Trace File Path" FORMAT a80 HEADING 'Your trace file with path is:'

SELECT
    a.trace_path || ' > ' || b.trace_file "Trace File Path"
FROM
    (SELECT value trace_path
     FROM v$parameter
     WHERE name = 'user_dump_dest') a
  , (SELECT c.instance || '_ora_' || spid || '.trc' trace_file
     FROM v$process, (SELECT LOWER(instance_name) instance FROM v$instance) c
     WHERE addr = (SELECT paddr
                   FROM v$session
                   WHERE (audsid, sid) = (SELECT SYS_CONTEXT('USERENV', 'SESSIONID')
                                                , SYS_CONTEXT('USERENV', 'SID')
                                           FROM dual)
                  )
    ) b
/

Voir aussi

  • Sess users — retrouver le SID/PID d'une session tierce à tracer