您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何使用Oracle TRCA分析10046 Trace RAW文件,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
Oracle 10046是我們常用的一種性能診斷工具。它可以將SQL執行過程中,每個步驟操作的內容、時間和對象等細節信息記錄在Trace文件里面。
10046直接生成的Trace文件我們稱為RAW格式文件,RAW格式記錄了所有的步驟操作細節。直接閱讀RAW文件可以幫助我們更細的理解Oracle行為方式,但是RAW格式一般都是體積較大,可讀性較差。
Tkprof是隨著10046 Trace工具推出的一個小工具,用于處理RAW格式文件。Tkprof可以將跟蹤的文件步驟抽取為各個SQL語句的分項統計,并且依據時間和CPU情況進行排序處理。但是,基于命令行的Tkprof也有一些缺點,比如對SQL語句之間關聯性(Recursive Call)的分析不是很強,一些細節信息缺失等。
于是,Oracle Support提供了另一種分析RAW格式文件的手段方式,就是TRCA(Trace Analyzer)工具包。
1、安裝和卸載
TRCA是Oracle Support提供了一個免費工具,我們可以從MOS 224270.1中下載安裝包和說明文檔。
與Tkprof不同的是,TRCA是需要額外安裝在數據庫服務器中的工具。運行過程需要額外的表空間和賬號對應。
我們首先將其zip包上傳到服務器目錄上,解壓到目錄。
[oracle@SimpleLinux upload]$ ls -l | grep trca
drwxr-xr-x 7 root root 4096 Oct 25 09:36 trca
創建TRCA表空間,表空間大小盡量維持在200M-500M左右,過小的存儲容易在運行處理的時候報錯。
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
進入trca目錄,在其中可以運行安裝腳本。
[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>
執行安裝腳本tacreate.sql,根據提示內容和信息回答腳本問題。
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.
注意,上面部分代碼片段截取比較多。在安裝過程中,有兩個問題需要注意:首先是輸入TRCA工具表空間和臨時表空間名稱,安裝腳本會將其列出來,我們輸入的時候要注意大小寫。另一個是安裝過程中需要輸入一個可以用TRCA工具的Oracle用戶名,這里可以輸入一個。但是不用著急,以后可以通過賦予角色TRCA_USER_ROLE給其他用戶來讓他人有使用權限。
SQL> grant TRCA_USER_ROLE to public
2 ;
Grant succeeded.
到此,TRCA就安裝完成。
卸載TRCA比較簡單,只需要單獨執行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.
2、Trace RAW實驗文件準備
為了進行實驗,我們先準備出一個10046的Trace文件。
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文件生成后,還會有對應的一個trm文件。根據MOS的說明,trm文件用于Oracle官方的一些性能診斷工具,其中包括一些Metadata信息。所以,還是不要輕易刪除掉。
3、運行TRCA分析
得到trace文件目錄之后,就可以進行分析了。TRCA是一個性能分析工具,但是自身的CPU和內存消耗量是不大的。原則上,我們還是選擇使用Trace源數據庫進行分析就好。
運行TRCA,需要在sqlplus中運行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權限的用戶執行程序。
[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>
最后,在處理目錄上,會出現一個新的壓縮包,其中包括了RAW文件處理結果。
[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
注意,在處理過程中,有一個部分描述了處理的結果文件,其中包括處理日志、結果報告的html和txt文件。另外,TRCA也融合了tkprof的功能,在結果文件中包括了排序和未排序處理的tkprof結果文件。
4、TRCA結果分析
相對于tkprof的處理結果,TRCA的內容要豐富的多,而且處理結果可讀性強得多。針對SQL中常見的recursive call的關系,TRCA html格式輸出都有不錯的處理展示。
首先在其中的是SQL消耗響應時間的統計情況。
還有針對Recursive Call關系,查看一個SQL語句執行過程中,是哪個環節消耗比較高。
針對每條SQL語句,我們也可以查看到執行計劃和對應統計信息。
注意一個問題,TRCA是有處理門限值的。并不是每條語句都能出現在報告中,只有消耗達到一定程度(10%)的情況才會有體現。
借助Oracle提供的很多工具,我們可以方便的了解遇到的問題,進行分析處理。TRCA作為tkprof的一種補充,在報告可讀性、信息詳實程度上,有了很大的提升。
關于如何使用Oracle TRCA分析10046 Trace RAW文件就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。