Oracle用户进程跟踪
用户进程跟踪
分为 基于会话级别跟踪和 实例级别跟踪;
会话级别跟踪又包括 当前会话跟踪和 非当前会话跟踪
跟踪文件位置由user_dump_dest设定,大小由max_dump_file_size 决定
生成的跟踪文件名为<SID>_ora_<SPID>.trc 其中SID为实例名称,SPID为系统进程号
通过v$session中的SQL_TRACE,SQL_TRACE_WAITS,SQL_TRACE_BINDS展示了一个会话的跟踪状态
注:
在专用服务器模式中:仅仅需要标识该会话并为该会话启用跟踪(专用模式为一对一模式,即一个用户进程对应一个服务器进程)
在共享模式中:对任何一个会话的跟踪会分布到每个共享服务器进程所生成的跟踪文件内。这时可以用tkprof合并多个sql跟踪文件
1.1 基于会话级别跟踪
1.1.1 针对当前会话跟踪
--以DBA权限 查看用户跟踪文件所在的位置
SQL> show parameter user_dump NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest string /u01/admin/sun/udump
SQL> --清空先前产生的跟踪文件
SQL> ! rm -f /u01/admin/sun/udump/*.trc --开启一个会话连接
SQL> conn hr/hr123
Connected.
SQL> --开启当前会话跟踪
SQL> alter session set sql_trace=true; Session altered. SQL> --执行测试SQL语句
--跟踪完毕后执行下面的语句关闭跟踪
SQL> alter session set sql_trace = false; Session altered. SQL> --通过DBA用户获取其SPID
SQL> select s.username,s.sid,p.spid from v$session s,v$process p
2 where s.paddr = p.addr and s.username = 'HR'; USERNAME SID SPID
------------------------------ ---------- ------------
HR 141 1255 SQL>
#可以使用vi,taik等工具 查看产生的跟踪会话文件
bash-3.00$ vi sun_ora_1255.trc
............
=====================
PARSING IN CURSOR # len= dep= uid= oct= lid= tim= hv= ad='5d4e9008'
select * from jobs --此处是我的测试sql
END OF STMT
PARSE #:c=,e=,p=,cr=,cu=,mis=,r=,dep=,og=,tim=
EXEC #:c=,e=,p=,cr=,cu=,mis=,r=,dep=,og=,tim=
FETCH #:c=,e=,p=,cr=,cu=,mis=,r=,dep=,og=,tim=
FETCH #:c=,e=,p=,cr=,cu=,mis=,r=,dep=,og=,tim=
FETCH #:c=,e=,p=,cr=,cu=,mis=,r=,dep=,og=,tim=
STAT # id= cnt= pid= pos= obj= op='TABLE ACCESS FULL JOBS (cr=9 pr=6 pw=0 time=37479 us)'
*** -- ::16.843
=====================
PARSING IN CURSOR # len= dep= uid= oct= lid= tim= hv= ad='5d4e3c80'
alter session set sql_trace = false --关闭当前跟踪操作
END OF STMT
PARSE #:c=,e=,p=,cr=,cu=,mis=,r=,dep=,og=,tim=
EXEC #:c=,e=,p=,cr=,cu=,mis=,r=,dep=,og=,tim=
1.1.2 针对非当前会话跟踪
--开启user1 会话连接
SQL> conn user1/user1
Connected.
SQL> --用DBA 用户查看
SQL> select s.username,s.sid,p.spid from v$session s,v$process p
2 where s.paddr = p.addr and s.username = 'USER1'; USERNAME SID SPID
------------------------------ ---------- ------------
USER1 137 1325 SQL> select sid,serial# from v$session where username = 'USER1'; SID SERIAL#
---------- ----------
137 118 SQL> --另开启hr 会话连接
SQL> conn hr/hr123
Connected.
SQL>
--在hr会话中开启对user1的跟踪
SQL> exec dbms_monitor.session_trace_enable(session_id=>137,serial_num=>118); PL/SQL procedure successfully completed. SQL> --执行SQL 语句则开始跟踪
--跟踪完毕后执行下面的语句关闭跟踪
SQL> exec dbms_monitor.session_trace_disable(session_id=>137,serial_num=>118); PL/SQL procedure successfully completed. SQL>
--查看产生的跟踪会话文件
bash-3.00$ vi sun_ora_1325.trc
=====================
PARSING IN CURSOR # len= dep= uid= oct= lid= tim= hv= ad='5d4ddba4'
update t
set name = 'TRACE'
WHERE ID =
END OF STMT
PARSE #:c=,e=,p=,cr=,cu=,mis=,r=,dep=,og=,tim=
EXEC #:c=,e=,p=,cr=,cu=,mis=,r=,dep=,og=,tim=
WAIT #: nam='SQL*Net message to client' ela= driver id= #bytes= p3= obj#= tim=
WAIT #: nam='SQL*Net message from client' ela= driver id= #bytes= p3= obj#= tim=
STAT # id= cnt= pid= pos= obj= op='UPDATE T (cr=37 pr=0 pw=0 time=17923 us)'
STAT # id= cnt= pid= pos= obj= op='TABLE ACCESS FULL T (cr=37 pr=0 pw=0 time=263 us)'
WAIT #: nam='SQL*Net message to client' ela= driver id= #bytes= p3= obj#= tim=
1.2 基于实例级别跟踪
--清除跟踪文件夹下先前产生的跟踪文件
SQL> ! rm -f /u01/admin/sun/udump/*.trc --设置实例级别的跟踪
SQL> conn /as sysdba
Connected.
SQL> alter system set sql_trace = true;
System altered.
SQL> --开启hr会话测试
SQL> conn hr/hr123
Connected.
SQL> select JOB_TITLE,MIN_SALARY,MAX_SALARY from jobs where JOB_ID='ST_MAN'; JOB_TITLE MIN_SALARY MAX_SALARY
----------------------------------- ---------- ----------
Stock Manager 5500 8500 SQL> --开启user1会话测试
SQL> conn user1/user1
Connected.
SQL> select * from t; ID NAME
---------- ----------------
8 inspur
1 oracle 。。。。。 --查看SPID
SQL> select s.username,s.sid,p.spid from v$session s,v$process p
2 where s.paddr = p.addr; USERNAME SID SPID
------------------------------ ---------- ------------
HR 137 1378
USER1 141 1384
--查看其各自产生的跟踪文件
bash-3.00$ ls -l *.trc
-rw-r----- oracle oinstall Aug : sun_ora_1378.trc --对hr用户的跟踪
-rw-r----- oracle oinstall Aug : sun_ora_1384.trc --对USER1用户的跟踪
bash-3.00$ --关闭实例级别的跟踪
SQL> alter system set sql_trace = false; System altered. SQL>
Oracle用户进程跟踪的更多相关文章
- ORACLE内存结构:PGA And UGA,ORACLE用户进程、服务器进程
执行一个SQL语句 执行查询语句的过程: 用户进程执行一个查询语句如select * from emp where empno=7839 用户进程和服务器进程建立连接,把改用户进程的信息存储到PGA的 ...
- ORACLE处理用户进程大剖析[阅读]
下面我们要讲ORACLE服务器进程如何处理用户进程的请求,当一个用户进程发出了一条SQL语名: UPDATE TABBLEA SET SALARY=SALARY*2: 首先,服务器进程把这条语 ...
- 如何查找ORACLE中的跟踪文件
一.跟踪文件是干什么用的? 跟踪文件中包含了大量而详细的诊断和调试信息.通过对跟踪文件的解读和分析,我们可以定位问题.分析问题和解决问题.从跟踪文件的产生的来源来看,跟踪文件又可以分为两 ...
- Oracle SQL 脚本跟踪
NC Oracle SQL 脚本跟踪 脚本: select * from v$sqlarea a and a.LAST_ACTIVE_TIME >= to_date( '2013-02-21 1 ...
- oracle 用户与表空间关系
oracle用户与表空间关系用户=商家表=商品表空间=仓库1. 1个商家能有很多商品,1个商品只能属于一个商家2. 1个商品可以放到仓库A,也可以放到仓库B,但不能同时放入A和B3. 仓库不属于任何商 ...
- Oracle用户,权限,角色以及登录管理 scoot 授权
Oracle用户,权限,角色以及登录管理 1. sys和system用户的区别 system用户只能用normal身份登陆em.除非你对它授予了sysdba的系统权限或者syspoer系统权限. sy ...
- Linux内存点滴:用户进程内存空间
原文出处:PerfGeeks 经常使用top命令了解进程信息,其中包括内存方面的信息.命令top帮助文档是这么解释各个字段的.VIRT , Virtual Image (kb)RES, Residen ...
- Oracle CheckPoint进程
在实例经过分配内存结构,加载控制文件后,然后要打开数据库的时候,需要做到控制文件,数据文件,联机重做日志保持相互状态一致性,数据库才可以打开.当数据库发生实例不正常关闭时(比如系统掉电或者Shutdo ...
- Linux内存点滴 用户进程内存空间
Linux内存点滴 用户进程内存空间 经常使用top命令了解进程信息,其中包括内存方面的信息.命令top帮助文档是这么解释各个字段的. VIRT, Virtual Image (kb) RES, Re ...
随机推荐
- iOS语音合成
苹果公司在iOS7中推出了语音合成的技术,无需网络环境也可以实现语音合成. iOS7语音合成的主要的API如下: 1.AVSpeechUtterance,是语音合成的基本单位,它封装影响语音合成的需要 ...
- html禁止清除input文本输入缓存
多数浏览器默认会缓存input的值,只有使用ctl+F5强制刷新的才可以清除缓存记录. 如果不想让浏览器缓存input的值,有2种方法: 方法一: 在不想使用缓存的input中添加 autocompl ...
- JavaScript 关于this的理解
this是一个挺神奇的东西,经常不知道它绑定到了那里 ,因此出来了各种绞尽脑汁的面试题. 例1 <script> var person={}; person.name='li'; pers ...
- Objective-C ,ios,iphone开发基础:JSON解析(使用苹果官方提供的JSON库:NSJSONSerialization)
json和xml的普及个人觉得是为了简化阅读难度,以及减轻网络负荷,json和xml 数据格式在格式化以后都是一种树状结构,可以树藤摸瓜的得到你想要的任何果子. 而不格式化的时候json和xml 又是 ...
- 24小时学通Linux内核之进程
都说这个主题不错,连我自己都觉得有点过大了,不过我想我还是得坚持下去,努力在有限的时间里学习到Linux内核的奥秘,也希望大家多指点,让我更有进步.今天讲的全是进程,这点在大二的时候就困惑了我,结果那 ...
- 高效的网络流dinic算法模版
#include <cstring> #include <algorithm> #include <vector> #define Maxn 120010 #def ...
- 控制器view的延迟加载
- poj3393[模拟题]
Lucky and Good Months by Gregorian Calendar Time Limit: 1000MS Memory Limit: 65536K Total Submissi ...
- Ubuntu 14.0操作系统,修改默认打开方式的方法
Ubuntu 14.0 有内置的视频播放器 Totem,但是使用起来不太习惯,所以在系统的软件中心 下载了gnome Mplayer和s Mplayer,都有打开上次播放的忆功能,只是gnome Mp ...
- 关于delegate, category和subclass
因为自己在学习这三个概念的时候,实在是走了很多的弯路,而且当我意识到这些概念在cocoa中很重要时,我便更糊涂了…或许从C++或者Java转过来的高手一看就明白,所以高手您随便拍砖,指正我的错误:新手 ...