(zt) 開啟事件跟蹤
Oracle為RDBMS提供了多種的診斷工具,診斷事件(Event)是其中一種常用、好用的方法,它使DBA可以方便的轉儲資料庫各種結構及跟蹤特定事件的發生。使用這些事件也不是件很高深的學問,舉例來說10046這個Event你也一定用過吧,如下的幾篇文章我將圍繞Event展開一些討論
一、Event的通常格式及分類
1、 通常格式如下:
EVENT="<事件名稱><動作><跟蹤專案><範圍限定>"
2、 Event分類
診斷事件大體上可以分為四類:
a. 轉儲類事件:它們主要用於轉儲Oracle的一些結構,例如轉儲一下控制檔案、資料檔案頭等內容。
b. 捕捉類事件:它們用於捕捉一些Error事件的發生,例如捕捉一下ORA-04031發生時一些Rdbms資訊,以判斷是Bug還是其它原因引起的這方面的問題。
c. 改變執行途徑類事件:它們用於改主一些Oracle內部程式碼的執行途徑,例如設定10269將會使Smon程式不去合併那些Free的空間。
d. 跟蹤類事件:這們用於獲取一些跟蹤資訊以用於Sql調優等方面,最典型的便是10046了,將會對Sql進行跟蹤。
3、 Michael R. Ault總結了下表:
跟蹤類別 |
事件名稱 |
動作(Action) |
Name |
跟蹤專案 |
範圍限定 |
轉儲類事件 |
immediate |
Trace |
“name” |
blockdump redohdr file_hdrs controlf systemstate |
Level block# Level 10 Level 10 Level 10 Level 10 |
捕捉類事件 |
Error number |
Trace |
“name” |
Error stack processstate Heapdump |
Foreve Off Level nr |
改變執行途徑類事件 |
Even code corresponding to path |
Trace |
“name” |
Context |
Forever or Level 10 |
跟蹤類事件 |
10046 |
Trace |
“name” |
Context |
Forever Level n off |
4、 其它說明:
a. 如果immediate放在第一個說明是無條件事件,即命令發出即轉儲到跟蹤檔案。
b. trace name位於第二、三項,除它們外的其它限定詞是供Oracle內部開發組用的。
c. level通常位於1-10之間(10046有時用到12),10意味著轉儲事件所有的資訊。例如當轉儲控制檔案時,level1表示轉儲控制檔案頭,而level 10表明轉儲控制檔案全部內容。
d. 轉儲所生成的trace檔案在user_dump_dest初始化引數指定的位置。
二、說一說設定的問題了
可以在init.ora中設定所需的事件,這將對所有會話期開啟的會話進行跟蹤,也可以用alter session set event 等方法設定事件跟蹤,這將開啟正在進行會話的事件跟蹤。
1、 在init.ora中設定跟蹤事件的方法
a. 語法
EVENT=”event 語法|,level n|:event 語法|,level n|…”
b. 舉例
event=”10231 trace name context forever,level 10’
c. 可以這樣設定多個事件:
EVENT="
10231 trace name context forever, level 10:
10232 trace name context forever, level 10"
2、 透過Alter session/system set events這種方法
舉個例子大家就明白了
Example:
Alter session set events ‘immediate trace name controlf level 10’;
Alter session set events ‘immediate trace name blockdump level 112511416’; (*)
在oracle8x及之上的版本也有這樣的語句:
Alter system dump datafile 13 block 15;實現的功能與(*)是類似的。
3、 使用DBMS_SYSTEM.SET_EV的方法
a. 過和定義如下
DBMS_SYSTEM.SET_EV(
SI Binary_integer,
SE Binary_integer,
EV Binary_integer,
LE Binary_integer,
NM Binary_integer);
SI: 即v$session中的sid
SE:即v$session中的serial#
EV:要設定的事件
LE:要設定事件的級別
NM:名稱
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-442885/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [zt] oracle跟蹤檔案與跟蹤事件Oracle事件
- oracle跟蹤檔案與跟蹤事件(zt)Oracle事件
- oracle跟蹤檔案和跟蹤事件(zt)Oracle事件
- [zt]Oracle跟蹤事件 - set eventsOracle事件
- 啟用跟蹤事件10046---06事件
- zt_使用10203事件event跟蹤Oracle塊清除事件Oracle
- 【TRACE】Oracle跟蹤事件Oracle事件
- Oracle 跟蹤事件【轉】Oracle事件
- Oracle跟蹤事件 -- set eventsOracle事件
- Oracle 跟蹤事件 set eventOracle事件
- Oracle跟蹤事件和dumpOracle事件
- oracle跟蹤事件(轉載)Oracle事件
- ORACLE開啟自動跟蹤SQL 功能。OracleSQL
- [Q]如果設定自動跟蹤 zt
- oracle跟蹤事件(dump)總結Oracle事件
- Oracle跟蹤事件:set events 整理Oracle事件
- ORACLE 10046 設定跟蹤事件後無跟蹤檔案Oracle事件
- oracle跟蹤常用內部事件號Oracle事件
- sql_trace 和 events 跟蹤事件SQL事件
- 設定跟蹤事件不起作用。事件
- 10046事件跟蹤會話sql事件會話SQL
- 收集 SQL Server 事件探查器跟蹤資訊SQLServer事件
- 給會話開跟蹤會話
- 啟用使用者程式跟蹤
- Oracle事件跟蹤及結構資料dumpOracle事件
- 跟蹤SQL - SQL Trace 及 10046 事件SQL事件
- 用SQL Server事件探查器Profiler建立跟蹤SQLServer事件
- 【10053 事件】10053事件的跟蹤檔案解析事件
- 對使用dblink的10046事件跟蹤事件
- 防止SQL SERVER的事件探查器跟蹤軟體SQLServer事件
- 在Axon框架中揭開跟蹤事件處理器的神秘面紗框架事件
- Oracle 開啟SQL跟蹤執行SET AUTOTRACE ON命令時出錯OracleSQL
- 使用10046事件跟蹤分析執行計劃事件
- 利用errorstack事件進行錯誤跟蹤和診斷Error事件
- 使用oracle的10046事件跟蹤SQL語句Oracle事件SQL
- 使用10203事件來跟蹤oracle塊清除事件Oracle
- Oracle EBS併發請求啟用跟蹤Oracle
- 檢查資料庫是否啟用了跟蹤資料庫