SQL> alter session set sql_trace = true; SQL> alter session set events '10046 trace name context forever, level 16'; -- 可以同时设置多个event跟踪,也可以简写: alter session set events '10046 level 16'; SQL> exec dbms_system.set_ev(9,437,10046,8,''); SQL> exec dbms_monitor.session_trace_enable(9,437);
3、controlf事件:dump控制文件结构 altersessionsetevents'immediate trace name controlf level 10'; --表示dump控制文件的所有内容。
4、locks事件:dump LCK进程的锁信息 altersessionsetevents'immediate trace name locks level 5';
5、redohdr事件:dump redo日志的头部信息 altersessionsetevents'immediate trace name redohdr level 1'; --表示dump redo日志头部的控制文件项。 altersessionsetevents'immediate trace name redohdr level 2'; --表示dump redo日志的通用文件头。 altersessionsetevents'immediate trace name redohdr level 10'; --表示dump redo日志的完整文件头。 注意:redo日志的内容dump可以采用下面的语句: altersystem dump logfile'logfilename';
6、loghist事件:dump控制文件中的日志历史项 altersessionsetevents'immediate trace name loghist level 1'; --表示只dump最早和最迟的日志历史项。 levelnumber大于等于2时,表示2的levelnumber次方个日志历史项。 altersessionsetevents'immediate trace name loghist level 4'; --表示dump 16个日志历史项。
7、file_hdrs事件:dump 所有数据文件的头部信息 altersessionsetevents'immediate trace name file_hdrs level 1'; --表示dump 所有数据文件头部的控制文件项。 altersessionsetevents'immediate trace name file_hdrs level 2'; --表示dump 所有数据文件的通用文件头。 altersessionsetevents'immediate trace name file_hdrs level 10'; --表示dump 所有数据文件的完整文件头。
8、errorstack事件:dump 错误栈信息,通常Oracle发生错误时前台进程将得到一条错误信息,但某些情况下得不到错误信息,可以采用这种方式得到Oracle错误。 altersessionsetevents'604 trace name errorstack forever'; --表示当出现604错误时,dump 错误栈和进程栈。
9、systemstate事件:dump所有系统状态和进程状态 altersessionsetevents'immediate trace name systemstate level 10'; --表示dump 所有系统状态和进程状态。
10、coalesec事件:dump指定表空间中的自由区间 levelnumber以十六进制表示时,两个高位字节表示自由区间数目,两个低位字节表示表空间号,如0x00050000表示dump系统表空间中的5个自由区间,转换成十进制就是327680,即: altersessionsetevents'immediate trace name coalesec level 327680';
11、processsate事件:dump进程状态 altersessionsetevents'immediate trace name processsate level 10';
12、library_cache事件:dump library cache信息 altersessionsetevents'immediate trace name library_cache level 10';
13、heapdump事件:dump PGA、SGA、UGA中的信息 altersessionsetevents'immediate trace name heapdump level 1';
14、row_cache事件:dump数据字典缓冲区中的信息 altersessionsetevents'immediate trace name row_cache level 1';
查看oracle错误事件和内部事件对应错误号(10000-10999)的几种办法:
1
[oracle@yg-bcc ~]$ oerr ora 10046
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
SET SERVEROUTPUT ON DECLARE err_msg VARCHAR2(120); BEGIN dbms_output.enable (1000000); FOR err_num IN 10000..10999 LOOP err_msg := SQLERRM (-err_num); IF err_msg NOT LIKE '%Message '||err_num||' not found%' THEN dbms_output.put_line (err_msg); ENDIF; ENDLOOP; END; /