首先获得会话的trace信息。
SQL> conn u1/u1
已连接。
SQL> select SID,SERIAL# from v$session where sid = (select sid from v$mystat where rownum = 1);
SID SERIAL#
---------- ----------
148 153
sql_trace
SQL> execute dbms_system.set_sql_trace_in_session(159,27,true); -- 启动
PL/SQL 过程已成功完成。
SQL> execute dbms_system.set_sql_trace_in_session(159,27,false); --停止
PL/SQL 过程已成功完成。
10046事件
SQL> exec dbms_monitor.session_trace_enable(148,153,waits=>true,binds=>true); --启动
PL/SQL 过程已成功完成。
SQL> exec dbms_monitor.session_trace_disable(148,153); --停止
PL/SQL 过程已成功完成。
获取跟踪文件:
select d.value || '/' || lower(rtrim(i.instance, chr(0))) || '_ora_' ||
p.spid || '.trc' trace_file_name
from (select p.spid
from sys.v$mystat m, sys.v$session s, sys.v$process p
where m.statistic# = 1
and s.sid = m.sid
and p.addr = s.paddr) p,
(select t.instance
from sys.v$thread t, sys.v$parameter v
where v.name = 'thread'
and (v.value = 0 or t.thread# = to_number(v.value))) i,
(select value from sys.v$parameter where name = 'user_dump_dest') d;