oracle诊断事件
时间:2010-08-17 来源:oracle狂热分子
oracle诊断事件
ORACEL诊数事件是一很重要的工具和手段,整理了一些关于这方面的认识,希望对大家有帮助,如下:
一,ORACLE的事件可以分为诊断事件和等待事件,等待事件用来调整性能的,诊断事件用来对数据进行诊断或是改变ORACLE行为
二,诊断事件一般可以用来转储ORACLE某些数据结构,跟踪ORACLE行为,改变ORACLR的行为或是在进程出错是生成errorstatck信息;
三,诊断事件的语法:<事件号或错误号或immediate><操作><name><内容><等级>,如:10046 trace name context forever,level 4
四,诊断事件的四种操作方式:1,在参数文件中设置 event="10046 trace name context forever,level 4"
event="10053 trace name context forever,level 4"
或者event="10046 trace name context forever,level 4:10053 trace name context forever,level 4"
event是参数文件中唯一可以设置多个值的参数,在两个event之间不能有其他的参数,否则前面设置的event全部无效,参数文件中的event不能设置转储数据结构事件
2,在sqlplus中使用alter system/session set event "事件",会在生user_deump_dest生成dump文件,但是这种方式不能跟踪别人的会话.
3,使用oradebug 命令,个人也比较喜欢这个工具,可以很方便跟踪别人会话,如:oradebug setmypid,oradebug event 10053 trace name context forever,level 4
4,使用dbms_system.set_env过程,如exec dbms_system.set_env(sid,serial#,10046,4,'') 五,列出所有可用的事件,一般都是在10000-10999.PL/SQL代码如下
declare
err varchar2(120);
begin
dbms_output.enable(100000); //把dbms output的buffer设得很大,要不然输不完,会报错,default为2000
for i in 10000..10999
loop
err:=sqlerrm(-i);
dbms_output.put_line(err);
end loop;
end;
/
event="10053 trace name context forever,level 4"
或者event="10046 trace name context forever,level 4:10053 trace name context forever,level 4"
event是参数文件中唯一可以设置多个值的参数,在两个event之间不能有其他的参数,否则前面设置的event全部无效,参数文件中的event不能设置转储数据结构事件
2,在sqlplus中使用alter system/session set event "事件",会在生user_deump_dest生成dump文件,但是这种方式不能跟踪别人的会话.
3,使用oradebug 命令,个人也比较喜欢这个工具,可以很方便跟踪别人会话,如:oradebug setmypid,oradebug event 10053 trace name context forever,level 4
4,使用dbms_system.set_env过程,如exec dbms_system.set_env(sid,serial#,10046,4,'') 五,列出所有可用的事件,一般都是在10000-10999.PL/SQL代码如下
declare
err varchar2(120);
begin
dbms_output.enable(100000); //把dbms output的buffer设得很大,要不然输不完,会报错,default为2000
for i in 10000..10999
loop
err:=sqlerrm(-i);
dbms_output.put_line(err);
end loop;
end;
/
相关阅读 更多 +