设为首页 加入收藏

TOP

启用用户进程跟踪(一)
2014-11-24 02:03:30 来源: 作者: 【 】 浏览:13
Tags:启用 用户 进程 跟踪
--========================
-- 启用用户进程跟踪
--========================

一、用户进程跟踪文件
用户跟踪文件在根据需要跟踪会话实际操作的时候根据要求产生
通常用于帮助调整应用程序,比如检查由SQL的不良写法所致的相关问题等等
由用户进程发出,服务器进程产生该类文件
包含跟踪SQL命令的统计信息、包含用户的错误信息
缺省情况下当用户出现会话错误时产生
位置由user_dump_dest设定
文件大小由max_dump_file_size 决定
可以设定记录会话的所有信息
分为基于会话级别和基于实例级别,大多数情况下,在session级别进行跟踪

在专用服务器模式中
仅仅需要标识该会话并为该会话启用跟踪(专用模式为一对一模式,即一个用户进程对应一个服务器进程)
在共享模式中
对任何一个会话的跟踪会分布到每个共享服务器进程所生成的跟踪文件内

二、不同级别的跟踪
instance level:
alter system set sql_trace = true;

session level:
使用alter session命令启用跟踪
alter session set sql_trace = true;
使用dbms包来启用跟踪
dbms_system.SET_SQL_TRACE_IN_SESSION

上述两类级别跟踪文件位置由user_dump_dest设定,且生成的跟踪文件名为_ora_.trc
其中SID为实例名称,SPID为系统进程号(Unix)或线程号(Windows)

1.演示基于实例级别的跟踪
SQL> show parameter user_dump --查看用户跟踪文件所在的位置

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest string /u01/app/oracle/admin/orcl/udu
mp
SQL> ho rm -f /u01/app/oracle/admin/orcl/udump/* --清除跟踪文件夹下先前产生的跟踪文件*/

SQL> alter system set sql_trace = true; --设置sql_trace参数启用实例级别的跟踪

System altered.

--开启一个会话连接
SQL> conn scott/tiger@orcl
Connected.

SQL> select s.username,s.sid,p.spid from v$session s,v$process p
2 where s.paddr = p.addr and s.username = 'SCOTT'; --获取需要跟踪的特定SPID

USERNAME SID SPID
------------------------------ ---------- ------------
SCOTT 134 7826

[oracle@robinson ~]$ ls $ORACLE_BASE/admin/orcl/udump
orcl_ora_4457.trc orcl_ora_4462.trc orcl_ora_6283.trc orcl_ora_7826.trc
orcl_ora_4459.trc orcl_ora_5027.trc orcl_ora_6524.trc orcl_ora_7833.trc

--使用tail -f 逐步跟踪会话文件
[oracle@robinson ~]$ tail -f $ORACLE_BASE/admin/orcl/udump/orcl_ora_7826.trc
=====================
PARSING IN CURSOR #3 len=40 dep=0 uid=54 oct=3 lid=54 tim=1253678938645444 hv=3933222116 ad='2dbb8df8'
SELECT DECODE('A','A','1','2') FROM DUAL
END OF STMT
PARSE #3:c=1000,e=1076,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,tim=1253678938645434
EXEC #3:c=0,e=41,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=1253678938645588
FETCH #3:c=0,e=20,p=0,cr=0,cu=0,mis=0,r=1,dep=0,og=1,tim=1253678938645673
STAT #3 id=1 cnt=1 pid=0 pos=1 obj=0 op='FAST DUAL (cr=0 pr=0 pw=0 time=8 us)'
XCTEND rlbk=0, rd_only=1
XCTEND rlbk=0, rd_only=1
*** 2010-09-06 18:04:56.482
=====================
PARSING IN CURSOR #4 len=44 dep=0 uid=54 oct=3 lid=54 tim=1253679195783434 hv=24946478 ad='2d43cb14'
select * from scott.emp where ename ='SCOTT'
END OF STMT
PARSE #4:c=1999,e=2262,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,tim=1253679195783423
EXEC #4:c=0,e=52,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=1253679195783643
FETCH #4:c
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇【Oracle】OPatch升级 下一篇OracleDSI核心技术揭密

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: