Heim > Datenbank > MySQL-Tutorial > Hauptteil

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

WBOY
Freigeben: 2016-06-07 17:31:15
Original
952 Leute haben es durchsucht

掌握该技术最根本的是需要搞清楚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.

linux

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!