溫馨提示×

溫馨提示×

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

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

如何使用Oracle TRCA分析10046 Trace RAW文件

發(fā)布時(shí)間:2021-11-06 16:16:38 來源:億速云 閱讀:163 作者:柒染 欄目:建站服務(wù)器

這篇文章將為大家詳細(xì)講解有關(guān)如何使用Oracle TRCA分析10046 Trace RAW文件,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

 

Oracle 10046是我們常用的一種性能診斷工具。它可以將SQL執(zhí)行過程中,每個(gè)步驟操作的內(nèi)容、時(shí)間和對象等細(xì)節(jié)信息記錄在Trace文件里面。

 

10046直接生成的Trace文件我們稱為RAW格式文件,RAW格式記錄了所有的步驟操作細(xì)節(jié)。直接閱讀RAW文件可以幫助我們更細(xì)的理解Oracle行為方式,但是RAW格式一般都是體積較大,可讀性較差。

 

Tkprof是隨著10046 Trace工具推出的一個(gè)小工具,用于處理RAW格式文件。Tkprof可以將跟蹤的文件步驟抽取為各個(gè)SQL語句的分項(xiàng)統(tǒng)計(jì),并且依據(jù)時(shí)間和CPU情況進(jìn)行排序處理。但是,基于命令行的Tkprof也有一些缺點(diǎn),比如對SQL語句之間關(guān)聯(lián)性(Recursive Call)的分析不是很強(qiáng),一些細(xì)節(jié)信息缺失等。

 

于是,Oracle Support提供了另一種分析RAW格式文件的手段方式,就是TRCATrace Analyzer)工具包。

 

1、安裝和卸載

 

TRCAOracle Support提供了一個(gè)免費(fèi)工具,我們可以從MOS 224270.1中下載安裝包和說明文檔。

 

Tkprof不同的是,TRCA是需要額外安裝在數(shù)據(jù)庫服務(wù)器中的工具。運(yùn)行過程需要額外的表空間和賬號對應(yīng)。

 

我們首先將其zip包上傳到服務(wù)器目錄上,解壓到目錄。

 

 

[oracle@SimpleLinux upload]$ ls -l | grep trca

drwxr-xr-x 7 root   root       4096 Oct 25 09:36 trca

 

 

創(chuàng)建TRCA表空間,表空間大小盡量維持在200M-500M左右,過小的存儲容易在運(yùn)行處理的時(shí)候報(bào)錯(cuò)。

 

 

SQL> create tablespace trcatbl datafile size 100m autoextend on

  2  extent management local uniform. size 1m

  3  segment space management auto;

 

Tablespace created

 

[root@SimpleLinux upload]# chown -R oracle:oinstall trca

[root@SimpleLinux upload]# ls -l

total 716

-rwxr-xr-x 1 oracle oinstall   3037 Oct 22 09:42 hugepages_settings.sh

drwxr-xr-x 3 root   root       4096 Oct 15 11:28 iftop-0.17

-rw-r--r-- 1 root   root     716800 Oct 15 11:27 iftop-0.17.tar.gz

drwxr-xr-x 7 oracle oinstall   4096 Oct 25 09:36 trca

 

 

進(jìn)入trca目錄,在其中可以運(yùn)行安裝腳本。

 

 

[oracle@SimpleLinux upload]$ cd trca/

[oracle@SimpleLinux trca]$ ls -l

total 36

drwxr-xr-x 2 root root  4096 Oct 25 09:36 dict

drwxr-xr-x 2 root root  4096 Oct 25 09:36 doc

drwxr-xr-x 2 root root  4096 Oct 25 09:36 install

drwxr-xr-x 2 root root  4096 Oct 25 09:36 run

-rw-r--r-- 1 root root 16227 Oct 25 09:36 trca_instructions.html

drwxr-xr-x 2 root root  4096 Oct 25 09:36 utl

[oracle@SimpleLinux trca]$ cd install/

[oracle@SimpleLinux install]$ sqlplus /nolog

 

SQL*Plus: Release 11.2.0.3.0 Production on Fri Oct 25 09:40:59 2013

 

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

 

SQL> conn / as sysdba

Connected.

SQL>

 

 

執(zhí)行安裝腳本tacreate.sql,根據(jù)提示內(nèi)容和信息回答腳本問題。

 

 

SQL> @tacreate.sql

        zip warning: name not matched: *_ta*.log

 

zip error: Nothing to do! (TRCA_installation_logs_archive.zip)

 

Below are the list of online tablespaces in this database.

Decide which tablespace you wish to create the TRCANLZR tables

and indexes.  This will also be the TRCANLZR user default tablespace.

 

(篇幅原因,有省略……)

 

TRCA users must be granted TRCA_USER_ROLE before using this tool.

TACREATE completed. Installation completed successfully.

 

 

注意,上面部分代碼片段截取比較多。在安裝過程中,有兩個(gè)問題需要注意:首先是輸入TRCA工具表空間和臨時(shí)表空間名稱,安裝腳本會將其列出來,我們輸入的時(shí)候要注意大小寫。另一個(gè)是安裝過程中需要輸入一個(gè)可以用TRCA工具的Oracle用戶名,這里可以輸入一個(gè)。但是不用著急,以后可以通過賦予角色TRCA_USER_ROLE給其他用戶來讓他人有使用權(quán)限。

 

 

SQL> grant TRCA_USER_ROLE to public

  2  ;

 

Grant succeeded.

 

 

到此,TRCA就安裝完成。

 

卸載TRCA比較簡單,只需要單獨(dú)執(zhí)行install目錄中的tadrop.sql腳本就可以了。

 

 

[oracle@SimpleLinux install]$ ls -l | grep tadrop

-rw-r--r-- 1 root root   1308 Oct 25 09:36 tadrop.sql

[oracle@SimpleLinux install]$ sqlplus /nolog

 

SQL*Plus: Release 11.2.0.3.0 Production on Fri Oct 25 09:47:48 2013

 

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

 

SQL> conn / as sysdba

Connected.

SQL> @tadrop.sql

Uninstalling TRCA, please wait

 

(篇幅原因,有省略……)

SQL>

SQL> SET ECHO OFF;

TADUSR completed.

TADROP completed.

 

 

2Trace RAW實(shí)驗(yàn)文件準(zhǔn)備

 

為了進(jìn)行實(shí)驗(yàn),我們先準(zhǔn)備出一個(gè)10046Trace文件。

 

 

SQL> select value from v$diag_info where name='Default Trace File';

VALUE

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

/u01/app/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_3121.trc

 

 

SQL> alter session set events '10046 trace name context forever, level 12';

Session altered.

 

SQL> select count(*) from dba_objects;

  COUNT(*)

----------

     75296

 

SQL> alter session set events '10046 trace name context off';

Session altered.

 

[oracle@SimpleLinux trace]$ ls -l | grep 3121

-rw-r----- 1 oracle oinstall   21352 Oct 25 09:06 ora11g_ora_3121.trc

-rw-r----- 1 oracle oinstall     244 Oct 25 09:06 ora11g_ora_3121.trm

 

 

額外說明:11g中,Trace文件生成后,還會有對應(yīng)的一個(gè)trm文件。根據(jù)MOS的說明,trm文件用于Oracle官方的一些性能診斷工具,其中包括一些Metadata信息。所以,還是不要輕易刪除掉。

 

3、運(yùn)行TRCA分析

 

得到trace文件目錄之后,就可以進(jìn)行分析了。TRCA是一個(gè)性能分析工具,但是自身的CPU和內(nèi)存消耗量是不大的。原則上,我們還是選擇使用Trace源數(shù)據(jù)庫進(jìn)行分析就好。

 

運(yùn)行TRCA,需要在sqlplus中運(yùn)行run目錄的腳本。

 

 

[oracle@SimpleLinux trca]$ cd run/

[oracle@SimpleLinux run]$ ls -l

total 20

-rw-r--r-- 1 root root 8587 Oct 25 09:36 trcanlzr.sql

-rw-r--r-- 1 root root 7784 Oct 25 09:36 trcasplit.sql

 

 

使用具有TRCA_USER_ROLE權(quán)限的用戶執(zhí)行程序。

 

 

[oracle@SimpleLinux run]$ sqlplus /nolog

 

SQL*Plus: Release 11.2.0.3.0 Production on Fri Oct 25 09:54:32 2013

 

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

 

SQL> conn / as sysdba

Connected.

SQL> @trcanlzr.sql /u01/app/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_3121.trc

 

PL/SQL procedure successfully completed.

 

Parameter 1:

Trace Filename or control_file.txt (required)

 

 

TKPROF: Release 11.2.0.3.0 - Development on Fri Oct 25 10:07:21 2013

 

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

(篇幅原因,有省略……)

 

  adding: trca_e79866.html (deflated 90%)

  adding: trca_e79866.log (deflated 83%)

  adding: trca_e79866_nosort.tkprof (deflated 86%)

  adding: trca_e79866_sort.tkprof (deflated 86%)

  adding: trca_e79866.txt (deflated 87%)

  adding: trcanlzr_error.log (deflated 83%)

test of trca_e79866.zip OK

deleting: trcanlzr_error.log

Archive:  trca_e79866.zip

  Length     Date   Time    Name

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

   172492  10-25-13 10:07   trca_e79866.html

    16093  10-25-13 10:07   trca_e79866.log

    22867  10-25-13 10:07   trca_e79866_nosort.tkprof

    22899  10-25-13 10:07   trca_e79866_sort.tkprof

    88541  10-25-13 10:07   trca_e79866.txt

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

   322892                   5 files

 

File trca_e79866.zip has been created

TRCANLZR completed.

SQL>


最后,在處理目錄上,會出現(xiàn)一個(gè)新的壓縮包,其中包括了RAW文件處理結(jié)果。


[oracle@SimpleLinux run]$ ls -l

total 60

-rw-r--r-- 1 oracle oinstall 39283 Oct 25 10:07 trca_e79866.zip

-rw-r--r-- 1 oracle oinstall  8587 Oct 25 09:36 trcanlzr.sql

-rw-r--r-- 1 oracle oinstall  7784 Oct 25 09:36 trcasplit.sql

注意,在處理過程中,有一個(gè)部分描述了處理的結(jié)果文件,其中包括處理日志、結(jié)果報(bào)告的htmltxt文件。另外,TRCA也融合了tkprof的功能,在結(jié)果文件中包括了排序和未排序處理的tkprof結(jié)果文件。

 

4、TRCA結(jié)果分析

 

相對于tkprof的處理結(jié)果,TRCA的內(nèi)容要豐富的多,而且處理結(jié)果可讀性強(qiáng)得多。針對SQL中常見的recursive call的關(guān)系,TRCA html格式輸出都有不錯(cuò)的處理展示。

首先在其中的是SQL消耗響應(yīng)時(shí)間的統(tǒng)計(jì)情況。

還有針對Recursive Call關(guān)系,查看一個(gè)SQL語句執(zhí)行過程中,是哪個(gè)環(huán)節(jié)消耗比較高。

針對每條SQL語句,我們也可以查看到執(zhí)行計(jì)劃和對應(yīng)統(tǒng)計(jì)信息。

注意一個(gè)問題,TRCA是有處理門限值的。并不是每條語句都能出現(xiàn)在報(bào)告中,只有消耗達(dá)到一定程度(10%)的情況才會有體現(xiàn)。

借助Oracle提供的很多工具,我們可以方便的了解遇到的問題,進(jìn)行分析處理。TRCA作為tkprof的一種補(bǔ)充,在報(bào)告可讀性、信息詳實(shí)程度上,有了很大的提升。

關(guān)于如何使用Oracle TRCA分析10046 Trace RAW文件就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

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

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

AI