Oracle跟蹤事件的兩種方法
以下的文章主要是對Oracle跟蹤的相關(guān)事件與Oracle跟蹤文件的相關(guān)內(nèi)容的具體介紹,如果你對這一相關(guān)技術(shù)心存好奇的話,以下的文章將會揭開它的神秘面紗。望你瀏覽完以下的內(nèi)容會有所收獲。
一、Oracle跟蹤文件
Oracle跟蹤文件分為三種類型,一種是后臺報警日志文件,記錄數(shù)據(jù)庫在啟動、關(guān)閉和運行期間后臺進程的活動情況,如表空間創(chuàng)建、回滾段創(chuàng)建、某些alter命令、日志切換、錯誤消息等。在數(shù)據(jù)庫出現(xiàn)故障時,應首先查看該文件,但文件中的信息與任何錯誤狀態(tài)沒有必然的聯(lián)系。
后臺報警日志文件保存BACKGROUND_DUMP_DEST參數(shù)指定的目錄中,文件格式為SIDALRT.LOG。另一種類型是DBWR、LGWR、SMON等后臺進程創(chuàng)建的后臺跟蹤文件。后臺跟蹤文件根據(jù)后臺進程運行情況產(chǎn)生,后臺跟蹤文件也保存在BACKGROUND_DUMP_DEST參數(shù)指定的目錄中,文件格式為siddbwr.trc、sidsmon.trc等。
還有一種類型是由連接到Oracle的用戶進程(Server Processes)生成的用戶跟蹤文件。這些文件僅在用戶會話期間遇到錯誤時產(chǎn)生。此外,用戶可以通過執(zhí)行oracle跟蹤事件(見后面)來生成該類文件,用戶跟蹤文件保存在USER_DUMP_DEST參數(shù)指定的目錄中,文件格式為oraxxxxx.trc,xxxxx為創(chuàng)建文件的進程號(或線程號)。
二、Oracle跟蹤事件
Oracle提供了一類命令,可以將Oracle各類內(nèi)部結(jié)構(gòu)中所包含的信息轉(zhuǎn)儲(dump)到跟蹤文件中,以便用戶能根據(jù)文件內(nèi)容來解決各種故障。設(shè)置跟蹤事件有兩種方法,一種是在init.ora文件中設(shè)置事件,這樣open數(shù)據(jù)庫后,將影響到所有的會話。設(shè)置格式如下:
- EVENT="eventnumber trace name eventname [forever,] [level levelnumber] : ......."
通過:符號,可以連續(xù)設(shè)置多個事件,也可以通過連續(xù)使用event來設(shè)置多個事件。
另一種方法是在會話過程中使用alter session set events命令,只對當前會話有影響。設(shè)置格式如下:
- alter session set events '[eventnumber|immediate] trace
name eventname [forever] [, level levelnumber] : .......'
通過:符號,可以連續(xù)設(shè)置多個事件,也可以通過連續(xù)使用alter session set events 來設(shè)置多個事件。
格式說明:eventnumber指觸發(fā)dump的事件號,事件號可以是Oracle錯誤號(出現(xiàn)相應錯誤時跟蹤指定的事件)或oralce內(nèi)部事件號,內(nèi)部事件號在10000到10999之間,不能與immediate關(guān)鍵字同用。
immediate關(guān)鍵字表示命令發(fā)出后,立即將指定的結(jié)構(gòu)dump到跟蹤文件中,這個關(guān)鍵字只用在alter session語句中,并且不能與 eventnumber、forever關(guān)鍵字同用。