segunda-feira, 23 de abril de 2012

[ORACLE] Monitorando uma sessão


Passo 1:
Com um usuário que tenha permissão para visualizar v$session, localize a sessão do usuário a ser monitorada:

select SID,SERIAL# from v$session where username='Nome_Usuario';

Passo 2:
Descoberto SID e Serial da sessão que você deseja monitorar, ative a monitoração com o commando abaixo:

exec SYS.DBMS_SYSTEM.SQL_TRACE_IN_SESSION(SID,SERIAL#,TRUE);

Se estiver usando 11g:

exec DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(SID,SERIAL#,TRUE);

A partir de agora, todos os comandos executados pelo usuário serão escritos num arquivo .trc no diretório especificado no parâmetro USER_DUMP_DEST.

Passo 3:
Após terminar o monitoramento, desative o monitoramento da sessão, é importante desativar o monitoramento, pois senão o arquivo .trc continuará a ser escrito, ocupando espaço livre em disco, até a sessão ser terminada.

exec SYS.DBMS_SYSTEM.SQL_TRACE_IN_SESSION(SID,SERIAL#,FALSE);

Se estiver usando 11g:

exec DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(SID,SERIAL#,FALSE);