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 ...
随机推荐
- 小白日记10:kali渗透测试之端口扫描-UDP、TCP、僵尸扫描、隐蔽扫描
端口扫描 二三四层发现的目的只是为了准确发现所有活着主机IP,确定攻击面,端口扫描即发现攻击点,发现开放端口.端口对应网络服务及应用端程序,服务端程序的漏洞通过端口攻入.[所有的扫描结果,都不要完全相 ...
- TCP/IP协议原理与应用笔记17:IP编址(重点)
1. IP地址(通用标识符) 对于同一个网络设备(主机或路由器)的不同网络连接,需要不同的IP地址进行标识 2. 主机标识符 主要有下面三种方式的主机标识方式: (1)Name:是什么,可读性强(了解 ...
- 一个JS版本的MD5
var hexcase = 0; function hex_md5(a) { if (a == "") return a; return rstr2hex(rstr_md5(str ...
- 安装openshift客户端工具 rhc
安装ruby: $ sudo apt-get install ruby-full 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 将会安装下列额外的软件包: ...
- uva 784 Maze Exploration 染色 搜索水题 DFS
染色问题,其实就是看看图上某一点能扩散多少. 用DFS解决,因为BFS不是很熟 =-=...以后要多练. 提交后32ms,优化了一下,在递归前进行判定,优化到22ms,不是优化的很好... 代码: # ...
- JPA注释,内嵌数据对象
@Data @Embeddable @NoArgsConstructor @AllArgsConstructor @JsonNaming(value = LowerCaseWithUnderscore ...
- Adobe Edge Animate –地球自转动画的实现,类似flash遮罩层的效果
Adobe Edge Animate –地球自转动画的实现,类似flash遮罩层的效果 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权和原文地址. 目前Edge的功能尚 ...
- [转]在SQL中用正则表达式替换html标签
本文转自:http://blog.csdn.net/dhttaso/article/details/6045380 由于数据库的一个表字段中多包含html标签,现在需要修改数据库的字段把html标签都 ...
- 高效的网络流dinic算法模版
#include <cstring> #include <algorithm> #include <vector> #define Maxn 120010 #def ...
- Spring(3.2.3) - Beans(1): Spring 容器
BeanFactory & ApplicationContext org.springframework.beans.factory.BeanFactory 是最基本的 Spring 容器接口 ...