溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Oracle的跟蹤文件(trace file)

發(fā)布時(shí)間:2020-06-27 18:35:51 來(lái)源:網(wǎng)絡(luò) 閱讀:1085 作者:hbxztc 欄目:建站服務(wù)器

跟蹤文件通常都是因?yàn)橥ㄟ^(guò)DBMS_MONITOR(在Oracle Database 9i Relese 2)及更早版本中則是ALTER SESSION SET SQL_TRACE=TRUE啟用了跟蹤的結(jié)果,或者是通過(guò)10046事件使用擴(kuò)展的跟蹤工具生成的,如下

Oracle的跟蹤文件(trace file)

這些跟蹤文件包含與診斷和性能有關(guān)的信息。它們對(duì)于了解數(shù)據(jù)庫(kù)應(yīng)用的內(nèi)部工作有著非凡的意義。在一個(gè)正常運(yùn)行的數(shù)據(jù)庫(kù)中,你會(huì)經(jīng)??吹竭@些跟蹤文件,而且遠(yuǎn)比看到其他類型的跟蹤文件多得多。

1 文件位置

不論是使用DBMS_MONITOR、SQL_TRACE還是擴(kuò)展的跟蹤工具,Oracle都會(huì)在數(shù)據(jù)庫(kù)服務(wù)器主機(jī)的以下兩個(gè)位置生成一個(gè)跟蹤文件。

  • 如果使用專用服務(wù)器連接,會(huì)在user_dump_dest參數(shù)指定的目錄中生成跟蹤文件。

  • 如果使用共享服務(wù)器連接,則會(huì)在background_dump_dest參數(shù)指定的目錄中生成跟蹤文件。

注意:11g版本中background_dump_destuser_dump_dest參數(shù)將要被廢棄掉,雖然還可以使用這兩個(gè)參數(shù)進(jìn)行查詢但可以使用使用新的參數(shù)或視圖進(jìn)行查詢。

使用show parameter dump_dest命令來(lái)查看目錄,也可以直接查詢V$PARAMETER視圖,或查詢新的V$DIAG_INFO 視圖

Oracle的跟蹤文件(trace file)

 Oracle的跟蹤文件(trace file)

V$DIAG_INFOOracle Database 11g新增的視圖,這在較早的版本中還沒(méi)有。它是訪問(wèn)新增ADR工具所用跟蹤信息的一個(gè)更容易的接口。

Oracle Database 11g調(diào)整了很多文件的默認(rèn)存儲(chǔ)位置,使它們組織得更好一些,從而能更容易地記錄對(duì)Oracle的服務(wù)請(qǐng)求。其中最重要的行包括下面兩項(xiàng):

  • Diag Trace:這是Oracle Database     11g中跟蹤文件(包括后臺(tái)和用戶轉(zhuǎn)儲(chǔ)目標(biāo))所在的位置。

  • Default Trace File:這是當(dāng)前會(huì)話的跟蹤文件名。在較早的版本中,這個(gè)文件名可能很難得到。在Oracle Database     11g中,只需要對(duì)V$DIAG_INFO簡(jiǎn)單的查詢就可以返回這個(gè)文件的完全限定文件名。

2命名約定

Oracle中跟蹤文件的命名約定總在變化,示例如下:

跟蹤文件名

數(shù)據(jù)庫(kù)版本

ora_10583.trc

9i Release 1

ora9ir2_ora_1905.trc

9i Release 2

ora10gr2_ora_6793.trc

10g Release 2

ora11gr2_ora_1990.trc

11g Release 2

跟蹤文件名可以分為以下幾個(gè)部分。

文件名的第一部分是ORACLE_SID(9i Release 1例外)

文件名的下一部分只有一個(gè)ora

跟蹤文件名中的數(shù)字是專用服務(wù)器的進(jìn)程ID,可以從V$PROCESS視圖得到。

Oracle Database 11g能方便使用V$DIAG_INFO視圖,在該版本之前,實(shí)際(假設(shè)使用專用服務(wù)器模式)需要訪問(wèn)4個(gè)視圖。

V$PARAMETER:找到USER_DUMP_DEST指定的跟蹤文件位置,找到可能在跟蹤文件名中用到的可選的tracefile_identifier。

V$PROCESS:查找進(jìn)程ID。

V$SESSION:正確地標(biāo)識(shí)其他視圖中的會(huì)話信息。

V$INSTALCE:得到ORACLE_SID。

使用下面的查詢可以生成跟蹤文件名:

SELECT C.VALUE || '/' || D.INSTANCE_NAME || '_ora_' || A.SPID || CASE

         WHEN E.VALUE IS NOT NULL THEN

          '_' || E.VALUE

       END || '.trc' TRACE

  FROM V$PROCESS A, V$SESSION B, V$PARAMETER C, V$INSTANCE D, V$PARAMETER E

 WHERE A.ADDR = B.PADDR

   AND B.SID = USERENV('sid')

   AND C.NAME = 'user_dump_dest'

   AND E.NAME = 'tracefile_identifier';

Oracle的跟蹤文件(trace file)Oracle的跟蹤文件(trace file)

如果文件存在就可以通過(guò)名字訪問(wèn)它。只有在啟用跟蹤后才能出現(xiàn)跟蹤文件。在Windows平臺(tái)上要把/換成\。

3 對(duì)跟蹤文件加標(biāo)記

有一種辦法可以對(duì)跟蹤文件“加標(biāo)記”,這樣即便無(wú)權(quán)訪問(wèn)V$PROCESSV$SESSION,也能找到跟蹤文件。假設(shè)你能讀取user_dump_dest目錄,就可以使用會(huì)話參數(shù)tracefile_identifier。采用這種方法可以為跟蹤文件名增加一個(gè)可以唯一標(biāo)識(shí)的串:


可以看到,跟蹤文件還是采用標(biāo)準(zhǔn)的<ORACLE_SID>_ora_<PROCESS_ID>格式命名,但是這里還有為它指定的唯一的串,這樣就能很容易找到跟蹤文件名。


參考《Oracle 9i 10g 11g編程藝術(shù)  深入數(shù)據(jù)庫(kù)體系結(jié)構(gòu) 》

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI