[oradebug命令学习3]How to Enable SQL_TRACE for Another Session Using Oradebug

How to Enable SQL_TRACE for Another Session or in MTS Using Oradebug [ID 1058210.6]
修改时间: 2012-6-12 类型: BULLETIN 状态: PUBLISHED 优先级: 3
***Checked for relevance on 12-Jun-2012***


How to Enable SQL_TRACE for Another Session Using ORADEBUG:
===========================================================
 
The ORADEBUG utility can enable/disable setting the SQL tracing for another 
user's session or an MTS session.  To enable tracing for another session, the 
Oracle process identifier (PID) or the Operating System processes identifier 
(SPID) must be identified from v$process.  This is an effective way of capturing 
a SQL trace from a process which is already running.  The output can be used to 
analyze SQL related performance issues. 
 
The ORADEBUG dump produces a trace file in the user_dump_dest that can be 
formatted with TKPROF.  The ORADEBUG is a utility which is available from 
Server Manager line mode (svrmgrl).  This utility is available in Oracle 
versions 7.3 and up. 
   
NOTE:  If using an older version of Oracle (prior to Oracle9), use 'svrmgrl'
instead of SQL*Plus as shown in the examples below.

e.g.
> svrmgrl
SVRMGR>  connect internal



Do the following:  
 
1. Obtain the Oracle process identifier or the Operating System process 
   identifier (SPID) from v$process in a non MTS environment: 

       >  sqlplus /nolog
       SQL> connect / as sysdba 
       SQL> select pid, spid, username from v$process; 
 
               PID    SPID   USERNAME 
               ----   -----  -------- 
               8      25807  oracle 

   Obtain the Oracle process identifier or the Operating System process 
   identifier (SPID) from v$process in an MTS environment:

          sqlplus /nolog
         SQL> connect / as sysdba
         SQL> select pid, spid from v$process p, v$shared_server s
              2  where p.addr = s.paddr;

       PID SPID
---------- ------------
        14 6976

    
 
2. Attach to the process using ORADEBUG. 
 
   Using the Oracle process identifier: 
 
       SQL> oradebug setorapid 8 
 
       Unix process pid: 25807, image: oracleV804 
 
 
   - or -  
  
 
   Using the Operating System process identifier: 
 
       SQL> oradebug setospid 25807 
 
       Oracle pid: 8, Unix process pid: 25807, image: oracleV804 
  
 
3. Turn on SQL Trace for the session. 
 
       SQL> oradebug event 10046 trace name context forever, level 12 
 
       Statement processed. 
 
 4. Get the name and location of the tracefile generated
 
       SQL> oradebug tracefile_name
         /opt/oracle/admin/db92/udump/db92_ora_16921.trc

5. Turn off the SQL trace for the session.  
 
 
       SQL> oradebug event 10046 trace name context off 
 
 
6. Format trace file using TKPROF. 
 
 
References:  
=========== Note 41634.1 - TKPROF and Problem Solving 

References

NOTE:310830.1  - How to Use Oradebug to Get Trace File Name and Location


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

转载于:http://blog.itpub.net/23135684/viewspace-748941/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值