您好,欢迎访问一九零五行业门户网

快速找到跟踪其他session产生的trc文件

掌握该技术最根本的是需要搞清楚session跟踪文件存放的路径和生成跟踪文件的命名规则,不然,在已经存在成全上万trc文件的生产环
掌握该技术最根本的是需要搞清楚session跟踪文件存放的路径和生成跟踪文件的命名规则,不然,在已经存在成全上万trc文件的生产环境中,要想快速正确的找到跟踪其他session产生的trc文件就如大海捞针。
跟踪其它session,一般是根据sid+serial#进行跟踪,但trc文件生成的名称跟sid和serial#无关系,,只是根spid有关系而已。
所以,搞清楚session跟踪文件存放的路径和生成跟踪文件的命名规则就非常重要了,下面来介绍一下。
1、 session跟踪文件存放的路径
由数据库的user_dump_dest参数所决定,例如:
sql> show parameter user_dump_dest
name type value
------------------------------------ ----------- ------------------------------
user_dump_dest string /dba/oracle/diag/rdbms/litest/litest/trace
2、 session跟踪文件的命名规则
“instance_name” + “_ora_” + “spid.trc” 例如:
litest_ora_12262.trc
路径名+跟踪文件名示例即为:
/dba/oracle/diag/rdbms/litest/litest/trace/litest_ora_12262.trc
3、10046跟踪其它sid会话,寻找trc文件实例
(1)查询出目标会话的sid或spid基本信息
a、先根据目标会话的sid查到其spid
sql> select p.spid,s.sid,s.serial# from v$session s,v$process p where s.paddr=p.addr and s.sid=38;
spid sid serial#
------------------------ ---------- ----------
16334 38 1499
b、或者,根据目标会话的spid查到其sid和serial#
sql> select s.sid,s.serial#,p.spid from v$session s,v$process p where s.paddr=p.addr and p.spid=16334;
sid serial# spid
---------- ---------- ----------- -------------
38 1499 16334
从上面查询中,已经查出sid 38,serail# 1499的spid是16334
(2)10046跟踪目标会话(sid=38,serial#=1499)
sql> execute dbms_system.set_ev(38,1499,10046,12,'');
pl/sql procedure successfully completed.
(3)在目标会话有产生活动信息后,根据目标会话的spid 16334,到udump目示下寻找trc文件
[oracle@oraclelinux trace]$ pwd
/dba/oracle/diag/rdbms/litest/litest/trace
[oracle@oraclelinux trace]$ ls -l |grep 16334
-rw-r-----. 1 oracle oinstall 4703 aug 15 13:42 litest_ora_16334.trc
-rw-r-----. 1 oracle oinstall 168 aug 15 13:42 litest_ora_16334.trm
现在udump目录下已经找到10046跟踪sid为38的trc文件litest_ora_16334.trc,
文件的绝对路径+文件名为:/dba/oracle/diag/rdbms/litest/litest/trace/litest_ora_16334.trc
(4)最后别忘记停止对sid 38的跟踪哦
sql> execute dbms_system.set_ev(38,1499,10046,0,'');
pl/sql procedure successfully completed.
其它类似信息

推荐信息