电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

XXXX1012-Oracle数据库诊断事件详解(如何获取所有内部事件号)VIP免费

XXXX1012-Oracle数据库诊断事件详解(如何获取所有内部事件号)_第1页
1/45
XXXX1012-Oracle数据库诊断事件详解(如何获取所有内部事件号)_第2页
2/45
XXXX1012-Oracle数据库诊断事件详解(如何获取所有内部事件号)_第3页
3/45
Oracle数据库诊断事件详解什么是Oracle数据库的诊断事件呢?简而言之的来说Oracle的诊断事件就是Oracle数据库中用于实现一些特殊功用的类别,一般主要用于实现以下几个方面的功用:改变Oracle数据库的行为启用收集Oracle数据库的跟踪或者调试信息启用对Oracle数据库的额外的错误检测一、Oracle数据库诊断事件简介什么是Oracle数据库的诊断事件呢?简而言之的来说Oracle的诊断事件就是Oracle数据库中用于实现一些特殊功用的类别,一般主要用于实现以下几个方面的功用:Ø改变Oracle数据库的行为Ø启用收集Oracle数据库的跟踪或者调试信息Ø启用对Oracle数据库的额外的错误检测如何去设置Oracle数据库的各种诊断事件呢?我们首先来给设置诊断事件下一个简单的定义,就是让Oracle数据库产生跟踪信息日志文件。设置诊断事件有如下的四种方法:Ø在INIT或者SPFILE初始化文件中设置这种设置的诊断事件都是针对于整个实例的:event='eventtracenamecontextforever,levellevel';如果需要设置多个诊断事件,可以通过以下两种方法:方法一:使用冒号分隔开两个诊断事件event="10248tracenamecontextforever,level10:10249tracenamecontextforever,level10"方法二:使用连续的行设置诊断事件event="10248tracenamecontextforever,level10"event="10249tracenamecontextforever,level10"Ø在当前SQL会话中设置针对整个实例的诊断事件的设置:ALTERSYSTEMSETEVENTS'eventtracenamecontextforever,levellevel';禁用设置的诊断事件:ALTERSYSTEMSETEVENTS'eventtracenamecontextoff';针对当前会话的诊断事件的设置:ALTERSESSIONSETEVENTS'eventtracenamecontextforever,levellevel';禁用设置的诊断事件:ALTERSESSIONSETEVENTS'eventtracenamecontextoff';Ø在另外一个SQL会话中使用DBMS_SYSTEM.SETEV存储过程设置EXECUTEsys.dbms_system.set_ev(sid,serial#,,,'')其中的SID,SERIAL#都是从视图V$SESSION中获得的。Ø在另外一个会话中使用debug工具设置对一个进程设置诊断事件:ORADEBUGEVENTeventTRACENAMECONTEXTFOREVER,LEVELlevel禁用设置的诊断事件:ORADEBUGEVENTeventTRACENAMECONTEXTOFF对一个会话设置诊断事件:ORADEBUGSESSION_EVENTeventTRACENAMECONTEXTFOREVER,LEVELlevel禁用设置的诊断事件:ORADEBUGSESSION_EVENTeventTRACENAMECONTEXTOFF注:在Oracle8i以上的版本中,是使用sysdba权限的用户登陆sqlplus后执行ORADEBUG命令;在Oracle7.3/8.0的版本中,是使用internal用户登陆svrmgrl后执行ORADEBUG命令;在更早的Oracle版本中使用ORADBX(ORAMBX在VMS系统上)。因为oradebug允许在另外的会话中设置诊断事件,这样就可以跟踪一些平时不太trace的会话,例如对export工具的诊断。诊断事件可以分成会话级的诊断事件和进程级的诊断事件,进程级的诊断事件是可以在INIT初始化参数文件中设定,会话级的诊断事件则可以使用"altersession..."或者"altersystem..."命令来设定。Oracle数据库在检测诊断事件的时候都是先检测会话级的诊断事件,然后再检测进程级的诊断事件。对于设置Oracle数据库的诊断事件都必须遵循一定的语法,例如在会话级别上设置诊断事件可以按照以下的语法来设置:altersessionsetevents'10181tracenamecontextforever,level1000';而同样的诊断事件在INIT初始化参数文件中就应该按照以下语法设置:event="10181tracenamecontextforever,level1000"在INIT初始化参数文件中设置诊断事件的时候,一般来说最好在诊断事件后加上相关的注释,注释的内容一般来说应该包括诊断事件的作用、为什么要使用这个诊断事件以及设置诊断事件的时间。下面这个图是关于设置诊断事件的语法表:诊断事件规定的语法为:{:}*EventName:它代表关联事件的符号名或者是一个事件号。如果是immediate,代表是一个立即无条件的诊断事件,不用去等待任何人发布它;也可以是指定的Oracle错误号码,还可以是具体的事件名。Action:分为和。ActionKeyWord的值可以是trace、debugger、crash,而qualifiers的语法则是依赖于具体的Action。Ø当为crash的时候,语法为:""(默认为空)|"off"(在等待...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

XXXX1012-Oracle数据库诊断事件详解(如何获取所有内部事件号)

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部