oracle數(shù)據(jù)庫(以及應(yīng)用服務(wù)器和oracle應(yīng)用)都是可以充分測量的,數(shù)據(jù)庫中這種測量性反應(yīng)在以下幾個方面:
V$視圖????????????????大多數(shù)V$視圖都包含"調(diào)試"信息
審計命令????????????可以指定數(shù)據(jù)庫要記錄哪些事件以便日后分析
資源管理器(dbms_resource_manager) ????允許對數(shù)據(jù)庫中的資源(cpu、I/O等)實現(xiàn)微管理
oracle"事件"????????基于oracle事件,能讓oracle生成所需的跟蹤或診斷信息
dbms_trace????????這是pl/sql引擎中的一個工具,它會全面的記錄存儲過程的調(diào)用樹、所產(chǎn)生的異常,以及遇到的錯誤
數(shù)據(jù)庫事件觸發(fā)器? ? 這些觸發(fā)器(如on servererror)允許你監(jiān)控和記錄你覺得"意外"或非正常的情況
sql_trace????????? ? 這個sql跟蹤工具還可以采用一種擴展方式使用,即通過10046 oracle事件
請求的跟蹤文件
一般跟蹤文件都是因為設(shè)置了sql_trace=true生成的結(jié)果,或者通過10046事件使用擴展的跟蹤工具生成的:
sys@ORCL>alter?session?set?events ??2??'10046?trace?name?context?forever,level?12'; 會話已更改。
1.文件位置
不論使用sql_trace還是擴展的跟蹤工具,oracle都會在數(shù)據(jù)庫服務(wù)器主機的以下兩個位置生成一個跟蹤文件:
專用服務(wù)器連接--在user_dump_dest參數(shù)指定的目錄中生成跟蹤文件
共享服務(wù)器連接--在background_dump_dest參數(shù)指定的目錄中生成跟蹤文件
sys@ORCL>select?name,value?from?v$parameter?where?name?like?'%dump_dest%' ??2??/ NAME -------------------------------------------------------------------------------- VALUE -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ---------------------------------------- background_dump_dest d:appadministratordiagrdbmsorclorcltrace user_dump_dest d:appadministratordiagrdbmsorclorcltrace core_dump_dest d:appadministratordiagrdbmsorclorclcdump
如果無法訪問v$parameter視圖,還可以使用dbms_utility來訪問大多數(shù)(但不是全部)參數(shù)的值:
least_privs@ORCL>declare
??2??l_string?varchar2(255);
??3??l_dummy?number;
??4??begin
??5???l_dummy?:=?dbms_utility.get_parameter_value
??6??('background_dump_dest',?l_dummy,l_string);
??7??dbms_output.put_line('background:'||l_string);
??8???l_dummy?:=?dbms_utility.get_parameter_value
??9??('user_dump_dest',l_dummy,l_string);
?10??dbms_output.put_line('user:'||l_string);
?11??end;
?12??/
background:d:appadministratordiagrdbmsorclorcltrace
user:d:appadministratordiagrdbmsorclorcltrace
PL/SQL?過程已成功完成。2.命名約定
文件名的第一部分是oracle_sid
文件名的第二部分是ora
跟蹤文件名中的數(shù)字是專用服務(wù)器的進程id,可以從v$process視圖中得到
因為,在實際中(假設(shè)使用專用服務(wù)器模式),需要訪問四個視圖:
v$parameter? ? 查找user_dump_dest指定的跟蹤文件位置
v$process????? ? 查找進程ID
v$session????? ? 正確的標(biāo)識其他視圖中的會話信息
v$instance? ? 得到oracle_sid
scott@ORCL>alter?session?set?sql_trace=true;
會話已更改。
scott@ORCL>select?c.value||'/'||d.instance_name||
??2??'_ora_'||a.spid||'.trc'trace
??3??from?v$process?a,??v$session?b,?v$parameter?c???,v$instance?d
??4??where?a.addr=b.paddr
??5??and?b.audsid=userenv('sessionid')
??6??and?c.name='user_dump_dest'
??7??/
TRACE
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------------------------------
d:appadministratordiagrdbmsorclorcltrace/orcl_ora_4404.trc
3.對跟蹤文件加標(biāo)記
有一種辦法可以對跟蹤文件“加標(biāo)記”,這樣即使你無權(quán)訪問v$process 和?v$session,也能找到跟蹤文件。
假設(shè)你能讀取user_dump_dest目錄,就可以使用會話參數(shù)tracefile_identifier.采用這種方法,可以為跟蹤文件名增加一個可以唯一標(biāo)識的串:
scott@ORCL>alter?session?set?tracefile_identifier='Look_For_Me'; 會話已更改。 scott@ORCL>alter?session?set?sql_trace=true; 會話已更改。
針對內(nèi)部錯誤生成的跟蹤文件
它們對oracle support有用。
如果得到內(nèi)部錯誤,修改這個錯誤的唯一辦法就是提交一個iTAR
----------------------------------------------------------------------
告警日志文件
是一類特殊的跟蹤文件(trace?file),命名一般為alert_
告警日志位置在ORACLE?10g中,BACKGROUND_DUMP_DEST參數(shù)確定了告警日志的位置,但是告警日志的文件名無法修改,告警日志的名稱為:alert_





