Enabling trace for a specific oracle schema

Para aquelas necessidades pontuais de habilitar o trace para todas as sessões provenientes de um schema específico, podemos criar uma trigger no banco de dados conforme abaixo. Devo registrar aqui os créditos ao Ricardo Portilho Proni, que gentilmente mandou este script para me ajudar com um caso do dia a dia.

SQL> SET DEFINE OFF
SQL> CREATE OR REPLACE TRIGGER SET_TRACE AFTER LOGON ON DATABASE
  2  BEGIN
  3  IF USER IN ('BSS') THEN
  4  EXECUTE IMMEDIATE 'ALTER SESSION SET TRACEFILE_IDENTIFIER=''TRACE_BSS''';
  5  EXECUTE IMMEDIATE 'ALTER SESSION SET TIMED_STATISTICS=TRUE';
  6  EXECUTE IMMEDIATE 'ALTER SESSION SET MAX_DUMP_FILE_SIZE=UNLIMITED';
  7  EXECUTE IMMEDIATE 'ALTER SESSION SET EVENTS ''10046 TRACE NAME CONTEXT FOREVER, LEVEL 12''';
  8  END IF;
  9  END;
 10  /
 
Gatilho criado.
 
SQL>

Depois disso, quando o banco receber novas conexões do schema BSS, vai gerar os arquivos traces conforme exemplo abaixo:

-rw-r----- 1 user group 192K Jan 21 09:09 orcl_ora_69850_TRACE_BSS.trm
-rw-r----- 1 user group 1.2M Jan 21 09:09 orcl_ora_69850_TRACE_BSS.trc
-rw-r----- 1 user group  969 Jan 21 09:10 orcl_ora_71293_TRACE_BSS.trm
-rw-r----- 1 user group 1.5K Jan 21 09:10 orcl_ora_71293_TRACE_BSS.trc
-rw-r----- 1 user group  63M Jan 21 09:10 alert_orcl.log
-rw-r----- 1 user group 1016 Jan 21 09:10 orcl_ora_71284_TRACE_BSS.trm
-rw-r----- 1 user group 1.7K Jan 21 09:10 orcl_ora_71284_TRACE_BSS.trc
[user@oel7 trace]$

Após isso, é só realizar o TKPROF utilizando os parâmetros pertinentes para a situação.

Leave a Comment

Your email address will not be published.