Oracle事件跟蹤及結構資料dump
Oracle提供了一類命令,可以將Oracle各種內部結構所包含的資訊轉儲(dump)到跟蹤檔案中,提供給使用者做跟蹤分析。收集Dump資訊要求資料庫必須在mount或open狀態下。發起Dump的Oracle使用者必須擁有alter session和必備的管理員許可權。Dump的Trace檔案路徑由初始化引數user_dump_dest指定,並保證作業系統環境中有足夠的空間存放Trace檔案。
一、 事件 跟蹤的 兩種方法
1、在init.ora檔案中設定事件,這樣open資料庫後,將影響到所有的會話。設定格式如下:
event = "eventnumber trace name eventname [forever][, level levelnumber] : ......."
透過“:”符號,可以連續設定多個事件,也可以透過連續使用event來設定多個事件。
2、在會話過程中使用alter session set events命令,只對當前會話有影響。設定格式如下:
alter session set events '[eventnumber|immediate] trace name eventname [forever][, level levelnumber] : .......'
透過“:”符號,可以連續設定多個事件,也可以透過連續使用alter session set events來設定多個事件。
二、事件跟蹤的 格式說明
eventnumber:觸發dump的事件號,事件號可以是Oracle錯誤號(出現相應錯誤時跟蹤指定的事件)或oralce內部事件號,內部事件號在10000到10999之間,eventnumber不能與immediate關鍵字同用。
immediate:表示命令發出後,立即將指定的結構dump到跟蹤檔案中,這個關鍵字只用在alter session語句中,並且不能與eventnumber、forever關鍵字同用。
trace name:關鍵字。
eventname:事件名稱,即要進行dump的實際結構名。若eventname為context,則指根據內部事件號進行跟蹤。
forever:表示事件在例項或會話的週期內保持有效狀態,不能與immediate同用。
level:事件級別關鍵字。
levelnumber:表示事件級別號,從1到12,一般1表示只dump結構頭部資訊,12表示dump結構的所有資訊。
三、常見事件及結構資料的 dump
buffer事件
直接轉儲Buffer Cache資訊
alter session set events 'immediate trace name buffers level 10';
dump SGA中的buffer cache block
需要執行兩條命令
alter session set events 'immediate trace name set_tsn_p1 level N';
N是檔案號 + 1
alter session set events 'immediate trace name buffer level N';
N是檔案號 * 4194304 + 塊號
controlf事件
dump控制檔案
alter session set events 'immediate trace name controlf level 12';
locks事件
dump LCK程式的鎖資訊
alter session set events 'immediate trace name locks level N';
redohdr事件
dump redo日誌的頭部資訊
alter session set events 'immediate trace name redohdr level N';
level 1:控制檔案中的資訊
level 2:level 1 + 通用檔案頭資訊
level>=3:level 2 + 日誌檔案頭資訊
level 10:完整檔案頭資訊
loghist事件
dump控制檔案中的日誌歷史項
alter session set events 'immediate trace name loghist level N';
N = 1:最早和最遲的日誌歷史項
N大於等於2時,表示2的N次方個日誌歷史項
file_hdrs事件
dump所有資料檔案的頭部資訊
alter session set events 'immediate trace name file_hdrs level N';
level 1:控制檔案中的資訊
level 2:level 1 + 通用檔案頭資訊
level>=3:level 2 + 資料檔案頭資訊
level 10:完整檔案頭資訊
errorstack事件
跟蹤Oracle錯誤號資訊
alter session set events '984 trace name errorstack forever, level 3';
alter session set events '984 trace name errorstack off';
systemstate事件
dump所有系統狀態和程式狀態
alter session set events 'immediate trace name systemstate level 10';
coalesec事件
dump指定表空間中的自由區間
levelnumber以十六進位制表示時,兩個高位位元組表示自由區間數目,兩個低位位元組表示表空間號,如0x00050000表示dump系統表空間中的5個自由區間,轉換成十進位制就是327680,即:
alter session set events 'immediate trace name coalesec level 327680';
processsate事件
dump程式狀態
alter session set events 'immediate trace name processsate level N';
library_cache事件
dump共享池中庫快取的資訊
alter session set events 'immediate trace name library_cache level N';
N=1,轉儲Library Cache統計資訊
N=2,轉儲Hash Table概要
N=4,轉儲Library Cache物件,只包含基本資訊
N=8,轉儲Library Cache物件,包含詳細資訊
N=16,增加heap sizes資訊
N=32,增加heap資訊
row_cache事件
dump共享池中資料字典快取資訊
alter session set events 'immediate trace name row_cache level N';
N=1,轉儲dictionary cache的統計資訊
N=2,轉儲hash表的彙總資訊
N=8,轉儲dictionary cache中物件的結構資訊
heapdump事件
dump PGA彙總資訊
alter session set events 'immediate trace name heapdump level 1';
dump 共享池內共享記憶體的資訊
alter session set events 'immediate trace name heapdump level 2';
dump SGA固定地址空間的資訊
alter session set events 'immediate trace name heapdump_addr level 1, addr n';
這裡的地址如果是16進位制,則需要先轉換為十進位制
select to_number('dcd00c0', 'xxxxxxxxxx') from dual; -- 231538880
treedump事件
dump b-tree索引塊
alter session set events 'immediate trace name treedump level object_id';
object_id為索引物件的ID
dump資料塊
以下表示dump資料檔案號為11中的第9個資料塊
alter system dump datafile 11 block 9;
dump日誌檔案
alter system dump logfile '/home/oracle/app/oracle/oradata/mes/redo01.log';
dump回滾段頭
alter system dump undo header '_SYSSMU1_3780397527$';
這裡指定了回滾段名
強制重新整理Buffer Cache,將Buffer Cache中的資料都寫出到資料檔案
alter session set events = 'immediate trace name flush_cache';
四 、Oracle內部事件 號說明
10012:跟蹤崩潰事務
10013:跟蹤資料庫啟動時的事務恢復
10015:跟蹤回滾段頭資訊
event = "10015 trace name context forever"
10029:用於給出會話期間的登陸資訊
10030:用於給出會話期間的登出資訊
10032:轉儲排序的統計資訊
10033:轉儲排序增長的統計資訊
10035:跟蹤解析出錯的SQL語句
alter session set events '10035 trace name context forever,level 12';
開啟後可在警告日誌中檢視解析出錯的SQL語句
10045:跟蹤Freelist管理操作
10046:跟蹤SQL語句
alter session set events '10046 trace name context forever, level 12';
alter session set events '10046 trace name context off';
10050:跟蹤SMON程式的活動
10053:轉儲最佳化策略
10059:模擬redo日誌中的建立和清除錯誤
10061:阻止SMON程式在啟動時清除臨時段
10079:轉儲 SQL*NET統計資訊
10081:轉儲高水位標記變化
10104:轉儲Hash連線統計資訊
10128:轉儲分割槽休整資訊
10200:轉儲一致性讀資訊
10201:轉儲一致性讀中Undo應用
10203:跟蹤資料庫的塊清除操作
alter system set event="10203 trace name context forever" scope=spfile;
10209:允許在控制檔案中模擬錯誤
10210:觸發資料塊檢查事件
event = "10210 trace name context forever, level 10"
10211:觸發索引檢查事件
10213:模擬在寫控制檔案後崩潰
10214:模擬在控制檔案中的寫錯誤
levelnumber從1-9表示產生錯誤的塊號,大於等於10則每個控制檔案將出錯
10215:模擬在控制檔案中的讀錯誤
10220:轉儲Undo頭部變化
10221;轉儲Undo變化
10224:轉儲索引的分隔與刪除
10225:轉儲基於字典管理的區間的變化
10229:模擬在資料檔案上的I/O錯誤
10231:設定在全表掃描時忽略損壞的資料塊
alter session set events '10231 trace name context forever, level 10';
10232:將設定為軟損壞(DBMS_REPAIR包設定或DB_BLOCK_CHECKING為TRUE時設定)的資料塊dump到跟蹤檔案
10235:用於記憶體堆檢查
alter session set events '10235 trace name context forever, level 1';
10241:轉儲遠端SQL執行
10246:跟蹤PMON程式的活動
10248:跟蹤dispatch程式
10249:跟蹤MTS程式
10252:模擬寫資料檔案頭部錯誤
10253:模擬寫redo日誌檔案錯誤
10262:允許連線時存在記憶體洩漏
alter session set events '10262 trace name context forever, level 300';
這裡表示允許存在300個位元組的記憶體洩漏
10270:轉儲共享遊標
10285:模擬控制檔案頭部損壞
10286:模擬控制檔案開啟錯誤
10287:模擬歸檔出錯
10357:除錯直接路徑機制
10500:跟蹤SMON程式
10608:跟蹤點陣圖索引的建立
10704:跟蹤enqueues
10706:跟蹤全域性enqueues
10708:跟蹤RAC的buffer cache
10710:跟蹤對點陣圖索引的訪問
10711:跟蹤點陣圖索引合併操作
10712:跟蹤點陣圖索引OR操作
10713:跟蹤點陣圖索引AND操作
10714:跟蹤點陣圖索引MINUS操作
10715:跟蹤點陣圖索引向ROWID的轉化
10716:跟蹤點陣圖索引的壓縮與解壓
10719:跟蹤點陣圖索引的修改
10731:跟蹤遊標宣告
10928:跟蹤PL/SQL執行
10938:轉儲PL/SQL執行統計資訊
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28974745/viewspace-2138019/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle跟蹤事件(dump)總結Oracle事件
- Oracle跟蹤事件和dumpOracle事件
- 【TRACE】Oracle跟蹤事件Oracle事件
- Oracle 跟蹤事件【轉】Oracle事件
- [zt] oracle跟蹤檔案與跟蹤事件Oracle事件
- oracle跟蹤檔案與跟蹤事件(zt)Oracle事件
- oracle跟蹤檔案和跟蹤事件(zt)Oracle事件
- Oracle跟蹤事件 -- set eventsOracle事件
- Oracle 跟蹤事件 set eventOracle事件
- oracle跟蹤事件(轉載)Oracle事件
- [zt]Oracle跟蹤事件 - set eventsOracle事件
- Oracle跟蹤事件:set events 整理Oracle事件
- Oracle資料庫跟蹤SQLOracle資料庫SQL
- dump Oracle資料庫的內部結構Oracle資料庫
- Oracle 跟蹤檔案和檔案轉儲(dump)Oracle
- oracle跟蹤常用內部事件號Oracle事件
- ORACLE 10046 設定跟蹤事件後無跟蹤檔案Oracle事件
- 跟蹤SQL - SQL Trace 及 10046 事件SQL事件
- (zt) 開啟事件跟蹤事件
- 資料塊內部結構dump解析
- 對Oracle資料庫內部結構進行dump的方法Oracle資料庫
- ORACLE 跟蹤工具Oracle
- 資料庫資料跟蹤記錄資料庫
- Oracle資料庫event事件與dump檔案介紹Oracle資料庫事件
- 怎樣能dump內部資料結構?資料結構
- 使用oracle的10046事件跟蹤SQL語句Oracle事件SQL
- 使用10203事件來跟蹤oracle塊清除事件Oracle
- 使用10046跟蹤Oracle前映象資料讀Oracle
- sql server跟蹤資料庫SQLServer資料庫
- 關於oracle中session跟蹤的總結OracleSession
- Oracle跟蹤會話Oracle會話
- Oracle跟蹤檔案Oracle
- 怎麼樣dump資料庫內部結構資料庫
- 【LOG】Oracle資料庫清理日誌、跟蹤檔案利器Oracle資料庫
- Oracle中如何跟蹤SQL或資料庫操作 [final]OracleSQL資料庫
- sql_trace 和 events 跟蹤事件SQL事件
- 設定跟蹤事件不起作用。事件
- 新增時--sqlserver資料庫跟蹤SQLServer資料庫