SQL_TRAC跟踪会话的测试_20101014

测试:

确认两个参数
SQL> show parameter timed_statistics

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
timed_statistics                     boolean     TRUE


SQL> SHOW PARAMETER MAX_DUMP_FILE_SIZE

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
max_dump_file_size                   string      UNLIMITED

这两个已设.

 

跟踪自身Session

alter session set sql_trace=true;

做sql
.....
select count(*) from user_tables;
.....

alter session set sql_trace=false;

找到tracefile

格式化Trace文件
tkprof  yzoracle_ora_9497.trc  yzoracle_ora_9497.sql


这样是可以的,但只能跟踪自己.

 

尝试跟踪第三会话

参考网上的说明:

Session 1:

conn gzdc/gzdc2009
select sid, serial#, username from v$session where
sid =
(select sid from v$mystat where rownum=1);
       SID    SERIAL# USERNAME
---------- ---------- ------------------------------
        14       8250 GZDC
       

       
Session 2:
conn /as sysdba

exec dbms_system.set_ev(14,8250,10046,1,'gzdc');

执行了这一步以后 只是对其他的会话设置了跟踪事件的等级,并非开始跟踪

开始跟踪
exec dbms_system.set_sql_trace_in_session(14,8250,true);

....
在Session 1 中执行SQL 语句,Select count(*) from user_tables;

结束跟踪
exec dbms_system.set_sql_trace_in_session(14,8250,false);

关闭会话设置
exec dbms_system.set_ev(14,8250,10046,0,'gzdc');

 

找到tracefile name

/opt/oracle/admin/test/udump/test_ora_21792.trc

注意这个Tracefile 来自于被跟踪的会话,而不是跟踪他的会话.


格式化tracefile
tkprof /opt/oracle/admin/test/udump/test_ora_21792.trc /opt/oracle/admin/test/udump/test_ora_21792.sql


查看 /opt/oracle/admin/test/udump/test_ora_21792.sql 可以看到详细的信息.

如需要更详细的信息,可以调整跟踪的Level
exec dbms_system.set_ev(sid,serial#,event#,level#,'name');

这样就可以用SQL_Trace来跟踪某个Session在某一段时间内执行的语句,即使语句语法错误也可跟踪到.

但这样有什么用呢?

还是不能跟踪到应用程序过来的语句,因为你不知道将是哪个会话执行这个SQL??

系统级的跟踪又太大了,有没有用户级的跟踪呢?

审计?

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10248702/viewspace-675991/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10248702/viewspace-675991/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值