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資料庫跟蹤SQLOracle資料庫SQL
- oracle跟蹤常用內部事件號Oracle事件
- [20190917]oracle跟蹤事件簡單寫法.txtOracle事件
- 【LOG】Oracle資料庫清理日誌、跟蹤檔案利器Oracle資料庫
- 新增時--sqlserver資料庫跟蹤SQLServer資料庫
- 如何收集Oracle程式中的SQL跟蹤資訊KUOracleSQL
- 轉:使用 Tkprof 分析 ORACLE 跟蹤檔案Oracle
- 【PHP資料結構】PHP資料結構及演算法總結PHP資料結構演算法
- Agile PLM資料庫表結構(Oracle)資料庫Oracle
- 達夢資料庫SQL跟蹤日誌詳細介紹及配置方法資料庫SQL
- 如何跟蹤資訊流廣告轉化資料?
- HBase 系統架構及資料結構架構資料結構
- 資料結構及演算法資料結構演算法
- 利用errorstack事件進行錯誤跟蹤和診斷Error事件
- Oracle - 資料庫的記憶體結構Oracle資料庫記憶體
- Oracle執行語句跟蹤 使用sql trace實現語句追蹤OracleSQL
- MochaImport+ for Mac - 匯入處理Mocha跟蹤資料AIImportMac
- 【資料結構】ArrayList原理及實現資料結構
- JAVA常用資料結構及原理分析Java資料結構
- oracle資料庫瘋狂生成dump把目錄撐滿Oracle資料庫
- 整合手機平臺待辦資料失敗問題跟蹤和處理(Mongodb、Oracle、SQLServer)MongoDBOracleSQLServer
- 用資料結構解釋事件溯源 – {4Comprehension}資料結構事件
- 【TRACE】如果通過10046跟蹤資料庫效能問題資料庫
- 使用ErrorStack進行錯誤跟蹤及診斷Error
- 【MEMORY】Oracle記憶體結構資源常用檢視及sqlOracle記憶體SQL
- 結構化資料、半結構化資料和非結構化資料
- Oracle 19c資料庫體系結構-2Oracle資料庫
- Oracle 19c資料庫體系結構-1Oracle資料庫
- Oracle 操作表結構基本語法及示例Oracle
- 使用zipKin構建NetCore分散式鏈路跟蹤NetCore分散式
- 【資料結構篇】認識資料結構資料結構
- oracle之 如何 dump logfileOracle
- spring security 授權方式(自定義)及原始碼跟蹤Spring原始碼
- Redis的資料結構及應用場景Redis資料結構
- 圖解:Java 中的資料結構及原理圖解Java資料結構
- 【redis】-- 資料結構及底層編碼篇Redis資料結構
- sp_trace_setfilter sqlserver篩選跟蹤或跟蹤過濾FilterSQLServer
- 【TRACE】如何設定或動態跟蹤Oracle net偵聽器Oracle
- 資料探勘演算法跟資料結構中的演算法有區別嗎演算法資料結構