♣
题目 部分
在Oracle中,如何获取trace文件的路径?
♣
答案部分
跟踪文件(Trace File)一般位于“user_dump_dest”参数所指定的目录中,具体路径可以通过以下几种方式查询获得。
1、通过user_dump_dest查询
运行如下SQL语句来创建视图:
1CREATE OR REPLACE VIEW VW_SQL_TRACE_NAME_LHR AS 2SELECT D.VALUE || '/' || LOWER(RTRIM(I.INSTANCE, CHR(0))) || '_ora_' || 3 P.SPID || '.trc' TRACE_FILE_NAME 4 FROM (SELECT P.SPID 5 FROM V$MYSTAT M, V$SESSION S, V$PROCESS P 6 WHERE M.STATISTIC# = '1' 7 AND S.SID = M.SID 8 AND P.ADDR = S.PADDR) P, 9 (SELECT T.INSTANCE 10 FROM V$THREAD T, V$PARAMETER V 11 WHERE V.NAME = 'thread' 12 AND (V.VALUE = '0' OR TO_CHAR(T.THREAD#) = V.VALUE)) I, 13 (SELECT VALUE FROM V$PARAMETER WHERE NAME = 'user_dump_dest') D;
创建公共同义词的命令如下所示:
1CREATE OR REPLACE PUBLIC SYNONYM SYN_TRACENAME_LHR FOR VW_SQL_TRACE_NAME_LHR;
查询同义词或视图都可以得到当前会话的trace文件名。
1SYS@lhrdb> SELECT * FROM VW_SQL_TRACE_NAME_LHR; 2TRACE_FILE_NAME 3-------------------------------------------------------------------------------- 4/oracle/app/oracle/diag/rdbms/lhrdb/lhrdb/trace/lhrdb_ora_19660944.trc
2、Oracle 11g可以通过查询V$DIAG_INFO获取
1SYS@lhrdb> SELECT VALUE FROM V$DIAG_INFO WHERE NAME LIKE '%Default%'; 2VALUE 3-------------------------------------------------------------------------------- 4/oracle/app/oracle/diag/rdbms/lhrdb/lhrdb/trace/lhrdb_ora_19660944.trc
3、oradebug tracefile_name获取
1SYS@lhrdb> oradebug setmypid 2Statement processed. 3SYS@lhrdb> oradebug tracefile_name 4/oracle/app/oracle/diag/rdbms/lhrdb/lhrdb/trace/lhrdb_ora_19660944.trc
4、通过参数直接查询
1SYS@lhrdb> ALTER SYSTEM DUMP DATAFILE 1 BLOCK 380313; 2System altered. 3SYS@lhrdb> SHOW PARAMETER USER_DUMP_DEST 4NAME TYPE VALUE 5------------------------------------ ----------- ------------------------------------------------------ 6user_dump_dest string /oracle/app/oracle/diag/rdbms/lhrdb/lhrdb/trace 7SYS@lhrdb> ! ls -lrt /oracle/app/oracle/diag/rdbms/lhrdb/lhrdb/trace/*.trc | tail -n 5 8-rw-r----- 1 oracle asmadmin 34143 Sep 27 13:00 /oracle/app/oracle/diag/rdbms/lhrdb/lhrdb/trace/lhrdb_m001_15859814.trc 9-rw-r----- 1 oracle asmadmin 49356 Sep 27 14:00 /oracle/app/oracle/diag/rdbms/lhrdb/lhrdb/trace/lhrdb_m001_15728766.trc 10-rw-r----- 1 oracle asmadmin 19089 Sep 27 15:00 /oracle/app/oracle/diag/rdbms/lhrdb/lhrdb/trace/lhrdb_m001_28377292.trc 11-rw-r----- 1 oracle asmadmin 32115 Sep 27 15:04 /oracle/app/oracle/diag/rdbms/lhrdb/lhrdb/trace/lhrdb_mmon_21233818.trc 12-rw-r----- 1 oracle asmadmin 21278 Sep 27 15:05 /oracle/app/oracle/diag/rdbms/lhrdb/lhrdb/trace/lhrdb_ora_19660944.trc 13