關於oracle跟蹤

來源:互聯網
上載者:User

如今,一般DBA使用會話跟蹤、SQL跟蹤並進行分析已不是稀奇的事情,我估計常用的方法有SQL_TRACE、10046事件等。另外,如果我們需要跟蹤其他會話,那需要如何做呢?大家估計最熟悉的是使用ORADEBUG,至少我喜歡這樣做。其實,Oracle提供的跟蹤方法非常豐富,本文就將這些方法一一介紹,大家可以選擇自己喜歡的方式並熟練使用它們。

TRACE目錄

首先,我可能會關心咱跟蹤的trace檔案放在哪裡,Oracle 10g和11g存放trace目錄是不一樣的,Oracle 10g中一般是$ORACLE_BASE/admin/$ORACLE_SID/udump和$ORACLE_BASE/admin/$ORACLE_SID/bdump(往往關心udump),而11g則引入了ADR(Automatic Diagnostic Repository)新特性,trace檔案就放於{adr_base}/diag/rdbms/{database_name}/$ORACLE_SID/trace下。

Oracle 11g Trace目錄中{adr_base}如下查看:

luocs@MAA> show parameter diag

NAME                                 TYPE                   VALUE

------------------------------------ ---------------------- ------------------------------

diagnostic_dest                      string                 /u01/app/oracle

追蹤檔案的前台進程會被定向到USER_DUMP_DEST參數所指定的目錄,而追蹤檔案的後台進程則使用BACKGROUND_DUMP_DEST參數所指向的目錄。無論在哪種情況下,TRACE的尾碼都是.trc。

Oracle 10g中,我們可以如下查看trace目錄

sys@LTB> show parameter user_dump_dest

NAME                                 TYPE                   VALUE

------------------------------------ ---------------------- ------------------------------

user_dump_dest                       string                 /u01/app/oracle/admin/ltb/udump

sys@LTB> show parameter background_dump_dest

NAME                                 TYPE                   VALUE

------------------------------------ ---------------------- ------------------------------

background_dump_dest                 string                 /u01/app/oracle/admin/ltb/bdump

或者通過查v$parameter獲得

sys@LTB> select name, value from v$parameter where name in ('user_dump_dest','background_dump_dest');

NAME                                VALUE

----------------------------------- -----------------------------------------------------------------

background_dump_dest                /u01/app/oracle/admin/ltb/bdump

user_dump_dest                      /u01/app/oracle/admin/ltb/udump

而Oracle 11g中,前台進程和後台進程所指定的trace目錄是相同的

sys@MAA> select name, value from v$parameter where name in ('user_dump_dest','background_dump_dest');

NAME                 VALUE

-------------------- -----------------------------------------------------------------

background_dump_dest /u01/app/oracle/diag/rdbms/maa/maa/trace

user_dump_dest       /u01/app/oracle/diag/rdbms/maa/maa/trace

另外,如果尋找當前會話的trace檔案,也可以使用如下指令碼:

sys@LTB> column trace new_val T

sys@LTB> select c.value || '/' || d.instance_name || '_ora_' ||

2         a.spid || '.trc' ||

3             case when e.value is not null then '_'||e.value end trace

4    from v$process a, v$session b, v$parameter c, v$instance d, v$parameter e

5   where a.addr = b.paddr

6     and b.audsid = userenv('sessionid')

7     and c.name = 'user_dump_dest'

8     and e.name = 'tracefile_identifier'

9  /

TRACE

------------------------------------------------------------------

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.