- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
……………………………………………………………精品资料推荐…………………………………………………
PAGE
PAGE 1
Oracle数据库诊断事件详解
什么是Oracle数据库的诊断事件呢?简而言之的来说Oracle的诊断事件就是Oracle数据库中用于实现一些特殊功用的类别,一般主要用于实现以下几个方面的功用:
??改变Oracle数据库的行为
??启用收集Oracle数据库的跟踪或者调试信息
??启用对Oracle数据库的额外的错误检测
一、 Oracle数据库诊断事件简介什么是Oracle数据库的诊断事件呢?简而言之的来说Oracle的诊断事件就是Oracle数据库中用于实现一些特殊功用的类别,一般主要用于实现以下几个方面的功用:? 改变Oracle数据库的行为? 启用收集Oracle数据库的跟踪或者调试信息? 启用对Oracle数据库的额外的错误检测
如何去设置Oracle数据库的各种诊断事件呢?我们首先来给设置诊断事件下一个简单的定义,就是让Oracle数据库产生跟踪信息日志文件。设置诊断事件有如下的四种方法:? 在INIT或者SPFILE初始化文件中设置这种设置的诊断事件都是针对于整个实例的:event=event trace name context forever, level level;如果需要设置多个诊断事件,可以通过以下两种方法:方法一:使用冒号分隔开两个诊断事件event = 10248 trace name context forever, level 10:10249 trace name context forever, level 10方法二:使用连续的行设置诊断事件event = 10248 trace name context forever, level 10event = 10249 trace name context forever, level 10? 在当前SQL会话中设置针对整个实例的诊断事件的设置:ALTER SYSTEM SET EVENTS event trace name context forever, level level;禁用设置的诊断事件:ALTER SYSTEM SET EVENTS event trace name context off;针对当前会话的诊断事件的设置:ALTER SESSION SET EVENTS event trace name context forever, level level;禁用设置的诊断事件:ALTER SESSION SET EVENTS event trace name context off;? 在另外一个SQL会话中使用DBMS_SYSTEM.SETEV存储过程设置EXECUTE sys.dbms_system.set_ev(sid, serial#, , , )其中的SID,SERIAL#都是从视图V$SESSION中获得的。? 在另外一个会话中使用debug工具设置对一个进程设置诊断事件:ORADEBUG EVENT event TRACE NAME CONTEXT FOREVER, LEVEL level禁用设置的诊断事件:ORADEBUG EVENT event TRACE NAME CONTEXT OFF对一个会话设置诊断事件:ORADEBUG SESSION_EVENT event TRACE NAME CONTEXT FOREVER, LEVEL level禁用设置的诊断事件:ORADEBUG SESSION_EVENT event TRACE NAME CONTEXT OFF
注: 在Oracle8i以上的版本中,是使用sysdba权限的用户登陆sqlplus后执行ORADEBUG命令;在Oracle7.3/8.0的版本中, 是使用internal用户登陆svrmgrl后执行ORADEBUG命令;在更早的Oracle版本中使用ORADBX (ORAMBX在VMS系统上)。因为oradebug允许在另外的会话中设置诊断事件,这样就可以跟踪一些平时不太trace的会话,例如对 export工具的诊断。诊断事件可以分成会话级的诊断事件和进程级的诊断事件,进程级的诊断事件是可以在INIT初始化参数文件中设定,会话级的诊断事 件则可以使用alter session...或者alter system ...命令来设定。Oracle数据库在检测诊断事件的时候都是先检测会话级的诊断事件,然后再检测进程级的诊断事件。
对于设置Oracle数据库的诊断事件都必须遵循一定的语法,例如在会话级别上设置诊断事件可以按照以下的语法来设置:a
文档评论(0)