當前位置:首頁 » 文件管理 » smon文件夾可以刪除嗎
擴展閱讀
怎樣把表格調整為滿頁 2024-11-29 23:39:40
可以看漫畫打游戲的地方 2024-11-29 23:35:47

smon文件夾可以刪除嗎

發布時間: 2023-11-21 21:08:41

㈠ Oracle資料庫event事件與mp文件介紹

一 Oracle跟蹤文件

Oracle跟蹤文件分為三種類型 一種是後台報警日誌文件 記錄資料庫在啟動 關閉和運行期間後台進程的活動情況 如表空間創建 回滾段創建 某些alter命令 日誌切換 錯誤消息等

在資料庫出現故障時 應首先查看該文件 但文件中的信息與任何錯誤狀態沒有必然的聯系 後台報警日誌文件保存BACKGROUND_DUMP_DEST參數指定的目錄中 文件格式為SIDALRT LOG 另一種類型是DBWR LGWR SMON等後台進程創建的後台跟蹤文件 後台跟蹤文件根據後台進程運行情況產生 後台跟蹤文件也保存在BACKGROUND_DUMP_DEST參數指定的目錄中 文件格式為siddbwr trc sid *** on trc等 還有一種類型是由連接到Oracle的用戶進程(Server Processes)生成的用戶跟蹤文件 這些文件僅在用戶會話期間遇到錯誤時產生 此外 用戶可以通過執行oracle跟蹤事件(見後面)來生成該類文件 用戶跟蹤文件保存在USER_DUMP_DEST參數指定的目錄中 文件格式為oraxxxxx trc xxxxx為創建文件的進程號(或線程號)

二 Oracle跟蹤事件

Oracle提供了一類命令 可以將Oracle各類讓告內部結構中所包含的信息轉儲(mp)到跟蹤文件中 以便用戶能根據文件內容來解決各種故障 設置跟蹤事件有兩種方法 一種是在init ora文件中設置事件 這樣open資料庫後 將影響到所有的會話 設置格式如下

虧卜EVENT= eventnumber trace name eventname [forever ] [level levelnumber] : 通過:符號 可以連續設置多個事件 也可以通過連續使用event來設置多個事件

另一種方法是在會話過程中使用alter session set events命令 只對當前會話有影響 設置格式如下

alter session set events [eventnumber|immediate] trace name eventname [forever] [ level levelnumber] :

通過:符號 可以連續設置多個事件 也可以通過連續使用alter session set events 來設置多個事件

格式說明 eventnumber指觸發mp的事件號 事件號可以是Oracle錯誤號(出現相應錯誤時跟蹤指定的事件)或oralce內部事件號 內部事件號在 到 之間 不能與immediate關鍵字同用

immediate關鍵字表示命令發出後 立即將指定的結構mp到跟蹤文件中 這個關鍵字只用在alter session語句中 並且不能與 eventnumber forever關鍵字同用

trace name 是關鍵字

eventname指事件名稱(見後面) 即要進行mp的實際銷滑穗結構名 若eventname為context 則指根據內部事件號進行跟蹤

forever關鍵字表示事件在實例或會話的周期內保持有效狀態 不能與immediate同用

levelnumber表示事件級別號 一般從 到 表示只mp結構頭部信息 表示mp結構的所有信息

buffers事件 mp SGA緩沖區中的db buffer結構

alter session set events immediate trace name buffers level ; 表示mp緩沖區的頭部

blockmp事件 mp數據文件 索引文件 回滾段文件結構

alter session set events immediate trace name blockmp level ; 表示mp塊地址為 的數據塊

在Oracle 以後該命令已改為

alter system mp datafile block ; 表示mp數據文件號為 中的第 個數據塊

controlf事件 mp控制文件結構

alter session set events immediate trace name controlf level ; 表示mp控制文件的所有內容

locks事件 mp LCK進程的鎖信息

alter session set events immediate trace name locks level ;

redohdr事件 mp redo日誌的頭部信息

alter session set events immediate trace name redohdr level ; 表示mp redo日誌頭部的控制文件項

alter session set events immediate trace name redohdr level ; 表示mp redo日誌的通用文件頭

alter session set events immediate trace name redohdr level ; 表示mp redo日誌的完整文件頭

注意 redo日誌的內容mp可以採用下面的語句:

alter system mp logfile logfilename ;

loghist事件 mp控制文件中的日誌歷史項

alter session set events immediate trace name loghist level ; 表示只mp最早和最遲的日誌歷史項

levelnumber大於等於 時 表示 的levelnumber次方個日誌歷史項

alter session set events immediate trace name loghist level ; 表示mp 個日誌歷史項

file_hdrs事件 mp 所有數據文件的頭部信息

alter session set events immediate trace name file_hdrs level ; 表示mp 所有數據文件頭部的控制文件項

alter session set events immediate trace name file_hdrs level ; 表示mp 所有數據文件的通用文件頭

alter session set events immediate trace name file_hdrs level ; 表示mp 所有數據文件的完整文件頭

errorstack事件 mp 錯誤棧信息 通常Oracle發生錯誤時前台進程將得到一條錯誤信息 但某些情況下得不到錯誤信息 可以採用這種方式得到Oracle錯誤

alter session set events trace name errorstack forever ; 表示當出現 錯誤時 mp 錯誤棧和進程棧

systemstate事件 mp所有系統狀態和進程狀態

alter session set events immediate trace name systemstate level ; 表示mp 所有系統狀態和進程狀態

coalesec事件 mp指定表空間中的自由區間

levelnumber以十六進製表示時 兩個高位位元組表示自由區間數目 兩個低位位元組表示表空間號 如 x 表示mp系統表空間中的 個自由區間 轉換成十進制就是 即

alter session set events immediate trace name coalesec level ;

processsate事件 mp進程狀態

alter session set events immediate trace name processsate level ;

library_cache事件 mp library cache信息

alter session set events immediate trace name library_cache level ;

heapmp事件 mp PGA SGA UGA中的信息

alter session set events immediate trace name heapmp level ;

row_cache事件 mp數據字典緩沖區中的信息

alter session set events immediate trace name row_cache level ;

三 內部事件號

用於監視事務恢復

轉儲UNDO SEGMENT頭部

event = trace name context forever

用於給出會話期間的登陸信息

用於給出會話期間的注銷信息

轉儲排序的統計信息

轉儲排序增長的統計信息

跟蹤Freelist管理操作

跟蹤SQL語句

alter session set events trace name context forever level ; 跟蹤SQL語句並顯示綁定變數

alter session set events trace name context forever level ; 跟蹤SQL語句並顯示等待事件

轉儲優化策略

模擬redo日誌中的創建和清除錯誤

阻止SMON進程在啟動時清除臨時段

轉儲 SQL*NET統計信息

轉儲高水標記變化

轉儲Hash連接統計信息

轉儲分區休整信息

轉儲一致性讀信息

轉儲一致性讀中Undo應用

允許在控制文件中模擬錯誤

觸發數據塊檢查事件

event = trace name context forever level

觸發索引檢查事件

模擬在寫控制文件後崩潰

模擬在控制文件中的寫錯誤

levelnumber從 表示產生錯誤的塊號 大於等於 則每個控制文件將出錯

模擬在控制文件中的讀錯誤

轉儲Undo頭部變化

;轉儲Undo變化

轉儲索引的分隔與刪除

轉儲基於字典管理的區間的變化

模擬在數據文件上的I/O錯誤

設置在全表掃描時忽略損壞的數據塊

alter session set events trace name context off ; 關閉會話期間的數據塊檢查

event = trace name context forever level 對任何進程讀入SGA的數據塊進行檢查

將設置為軟損壞(DBMS_REPAIR包設置或DB_BLOCK_CHECKING為TRUE時設置)的數據塊mp到跟蹤文件

用於內存堆檢查

alter session set events trace name context forever level ;

轉儲遠程SQL執行

跟蹤PMON進程

跟蹤dispatch進程

跟蹤MTS進程

模擬寫數據文件頭部錯誤

模擬寫redo日誌文件錯誤

允許連接時存在內存泄漏

alter session set events trace name context forever level ; 允許存在 個位元組的內存泄漏

轉儲共享游標

模擬控制文件頭部損壞

模擬控制文件打開錯誤

模擬歸檔出錯

調試直接路徑機制

跟蹤SMON進程

跟蹤點陣圖索引的創建

跟蹤enqueues

跟蹤全局enqueues

跟蹤RAC的buffer cache

跟蹤對點陣圖索引的訪問

跟蹤點陣圖索引合並操作

跟蹤點陣圖索引OR操作

跟蹤點陣圖索引AND操作

跟蹤點陣圖索引MINUS操作

跟蹤點陣圖索引向ROWID的轉化

跟蹤點陣圖索引的壓縮與解壓

跟蹤點陣圖索引的修改

跟蹤游標聲明

跟蹤PL/SQL執行

轉儲PL/SQL執行統計信息

最後要說明的是 由於版本不同以上語法可能有些變化 但大多數還是可用的

附完整的跟蹤事件列表 event No to

SET SERVEROUTPUT ONDECLAREerr_msg VARCHAR ( );BEGINdbms_output enable ( );FOR err_num IN LOOPerr_msg := SQLERRM ( err_num);IF err_msg NOT LIKE %Message ||err_num|| not found% THENdbms_output put_line (err_msg);END IF;END LOOP;END;/

select sid serial# username osuser machine from v$session;查詢session的sid serial#

exec dbms_system set_sql_trace_in_session( true);開始跟蹤

exec dbms_system set_sql_trace_in_session( true) 停止跟蹤

tkprof * trc * txt

select sid serial# username osuser machine from v$session;查詢session的sid serial#

exec dbms_system set_sql_trace_in_session( true);開始跟蹤

exec dbms_system set_sql_trace_in_session( true) 停止跟蹤

tkprof * trc * txt

查看文件

get trace file nameselectd value|| / ||lower(rtrim(i instance chr( )))|| _ora_ ||p spid|| trc trace_file_namefrom( select p spidfrom sys v$mystat m sys v$session s sys v$process pwhere m statistic# = and s sid = m sid and p addr = s paddr) p ( select t instance from sys v$thread t sys v$parameter vwhere v name = thread and (v value = or t thread# = to_number(v value))) i ( select value from sys v$parameter where name = user_mp_dest ) d

lishixin/Article/program/Oracle/201311/17136