ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle的跟踪事件

Oracle的跟踪事件

原创 Linux操作系统 作者:jhondom 时间:2013-05-01 14:21:02 0 删除 编辑
一.跟踪文件
Oracle的跟踪文件分为3种:1.跟踪后台警告日志(记录数据库的启动,关闭和运行期间数据库的后台进程情况,如创建表空间,回滚段,日志切换,错误消息等)在数据库出现故障时,应首先查看该文件的内容,文件名为sidalrt.log.2.DBWR,LGWR,SMON等后台进程创建的后台跟踪文件,文件名为siddbwr.trc,sidlgwr.trc,sidsmon.trc。3.连接到oracle的用户进程(server processes)生成的用户的跟踪文件。这些文件在用户会话产生错误期间生成,文件名为oraxxxxx.trc,xxxxx为创建文件的进程(线程)号。
 
二.跟踪事件
将oracle的内部结构中包含的信息转储(dump)到跟踪文件,方便用户根据内容解决各种故障,设置跟踪事件的方法:
1.在init.ora中设置事件,这样open数据后将影响所有会话。设置格式为:
EVENT='eventnumber trace name eventname [foraver,][level levelnumber]: ....'
使用:可以连续设置多个事件。
2.使用alter session set events命令,只对当前会话有影响。设置格式为:
alter session set events '[eventnumber|immediate] trace name eventname [forever][,level levelnumber]: ...'
 使用:可以设置多个事件,也可以使用events设置多个事件。
eventnumber:触发dump的事件号,可以是oracle的错误事件号(出现错误的事件跟踪号)或oracle的内部事件号。事件号在10000-10999之间,不能与immediate关键字同用。immediate表示命令发出后立即将指定的结构dump到跟踪文件中,这个关键字只用在alter session中不能与eventnumber,forever关键字同用。
eventname:要进行dump的事件名称,若eventname为context则根据内部事件号进行跟踪。
forever:事件在实例或会话周期内保持有效状态不能与immediate同用。
level:事件级别关键字,但在dump错误栈(errorstack)时不存在级别。
levelnumber:事件级别号,一般从1到10,1表示只dump结构头部信息,10表示dump所有信息。
 
三.dump信息说明:
1.buffers事件:dump SGA缓冲区中的db buffer结构
      alter session set events 'immediate trace name buffers level 1';----表示dump缓冲区的头部。
 
2.blockdump事件:dump数据文件,索引文件,回滚段文件结构
       alter session set events 'immediate trace name blockdump level 66666';---表示dump地址为66666的数据块。
       alter system dump datafile 11 block 9;----表示dump数据文件号为11中的第9个数据块。
 
3.controlf事件:dump控制文件结构
       alter session set events 'immediate trace name controlf level 10';----表示dump控制文件的所有内容。
 
4.locks事件:dump LCK进程的锁信息
       alter session set events 'immediate trace name locks level 5';
 
5.redohdr事件:dump redo日志的头部信息
        alter session set events 'immediate trace name redohdr level 1';----表示dump redo日志文件的头部信息。
        alter session set events 'immediate trace name redohdr level 2';----表示dump
redo日志的通用文件头。
        alter session set evetns 'immediate trace name redohdr level 10';---表示dump
redo日志的完整文件头。
dump redo日志的内容:alter system dump logfile 'logfilename';
 
6.loghist事件:dump控制文件中的日志历史项
          alter session set events 'immediate trace name loghist level 1';---dump最早和最迟的日志历史项。
          levelnumber>2时表示2的levelnumber次方个历史日志项
          alter session set events 'immediate trace name loghist level 4';---dump16个日志历史项。
 
7.file_hdrs事件:dump所有数据文件的头部信息
          alter session set events 'immediate trace name file_hdrs_level 1';---dump所有数据文件头部的控制文件项。
          alter session set events 'immediate trace name file_hdrs_level 2';---dump所有数据文件通用文件头。
           alter session set events 'immediate trace name file_hdrs_level 10';---dump所有数据文件的完整文件头。
 
8.errorstack事件:dump错误栈信息,oracle发生错误时前台进程将得到一条错误信息,有些情况得不到时使用:
           alter session set events '604 trace name errorstack forever':---出现604错误时dump错误栈和进程栈。
 
9.systemstate事件:dump所有系统状态和进程状态
 
10.coalesec事件:dump指定表空间中的自由区间
levelnumber以16进制表示时,两个高位字节表示自由区间数目,两个低位字节表示表空间号。如0x00050000表示dump系统表空间中的5个自由区间,转换成10进制就是327680.
           alter session set events 'immediate trace name coalesec level 327680';
 
11.processsate事件:dump进程状态
           alter session set events 'immediate trace name processsate level 10';
 
12.library_cache事件:dump library cache信息
           alter session set events 'immediate trace name library_cache level 10';
 
13.heapdump事件:dump SGA PGA UGA中的信息
           alter session set events 'immediate trace name heapdump level 1';
 
14.row_cache事件:dump数据字典缓冲区中的信息
           alter session set events 'immediate trace name row_cache level 1';
 
文章参考网络供学习使用,有侵权将第一时间删除。
 
http://blog.tanelpoder.com/2013/10/07/why-doesnt-alter-system-set-events-set-the-events-or-tracing-immediately/?fb_source=pubv1
     

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20523441/viewspace-772582/,如需转载,请注明出处,否则将追究法律责任。

上一篇: Oracle的存储过程
下一篇: Oracle RMAN命令
请登录后发表评论 登录
全部评论

注册时间:2013-04-21

  • 博文量
    15
  • 访问量
    23522