Oracle常用dump命令.docx_第1页
Oracle常用dump命令.docx_第2页
Oracle常用dump命令.docx_第3页
Oracle常用dump命令.docx_第4页
Oracle常用dump命令.docx_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Oracle常用dump命令 Memory Dumps1).Global AreaALTER SESSION SET EVENTS immediate trace name global_area level n;1 包含PGA2 包含SGA4 包含UGA8 包含indrect memory2).Library CacheALTER SESSION SET EVENTS immediate trace name library_cache level n;1 library cache统计信息2 包含hash table histogram3 包含object handle4 包含object结构(Heap 0)3).Row CacheALTER SESSION SET EVENTS immediate trace name row_cache level n;1 row cache统计信息2 包含hash table histogram8 包含object结构4).BuffersALTER SESSION SET EVENTS immediate trace name buffers level n;1 buffer header2 level 1 + block header3 level 2 + block contents4 level 1 + hash chain5 level 2 + hash chain6 level 3 + hash chain8 level 4 + users/waiters9 level 5 + users/waiters10 level 6 + users/waiters5).BufferALTER SESSION SET EVENTS immediate trace name buffer level n;n为某个指定block的rdba,该命令可以转储某个block在buffer中的所有版本。6).HeapALTER SESSION SET EVENTS immediate trace name heapdump level level;1 PGA摘要2 SGA摘要4 UGA摘要8 Current call(CGA)摘要16 User call(CGA)摘要32 Large call(LGA)摘要1025 PGA内容2050 SGA内容4100 UGA内容8200 Current call内容16400 User call内容32800 Large call内容7).Sub HeapOracle 9.0.1版本之前ALTER SESSION SET EVENTS immediate trace name heapdump_addr level n;若n为subheap的地址,转储的是subheap的摘要信息若n为subheap的地址+1,转储的则是subheap的内容Oracle 9.2.0版本之后ALTER SESSION SET EVENTS immediate trace name heapdump_addr level n, addr m;其中m为subheap的地址,n为1转储subheap的摘要,n为2转储subheap的内容8).Process StateALTER SESSION SET EVENTS immediate trace name processstate level n;9).System StateALTER SESSION SET EVENTS immediate trace name systemstate level n;10).Error StateALTER SESSION SET EVENTS immediate trace name errorstack level n;0 Error stack1 level 0 + function call stack2 level 1 + process state3 level 2 + context area11).Hang AnalysisALTER SESSION SET EVENTS immediate trace name hanganalyze level n;12).Work AreaALTER SESSION SET EVENTS immediate trace name workareatab_dump level n;1 SGA信息2 Workarea Table摘要信息3 Workarea Table详细信息13).LatchesALTER SESSION SET EVENTS immediate trace name latches level n;1 latch信息2 统计信息14).EventsALTER SESSION SET EVENTS immediate trace name events level n;1 session2 process3 system15).LocksALTER SESSION SET EVENTS immediate trace name locks level n;16).Shared Server ProcessALTER SESSION SET EVENTS immediate trace name shared_server_state level n;n取值为11417).Background MessagesALTER SESSION SET EVENTS immediate trace name bg_messages level (pid+1);File Dumps1).BlockALTER SYSTEM DUMP DATAFILE file# BLOCK block#;ALTER SYSTEM DUMP DATAFILE file# BLOCK MIN min # BLOCK MAX max #;2).Tree DumpALTER SESSION SET EVENTS immediate trace name treedump level object_id;3).Undo Segment HeaderALTER SYSTEM DUMP UNDO_HEADER segment_name;4).Undo for a TransactionALTER SYSTEM DUMP UNDO BLOCK segment_name XID xidusn xidslot xidsqn;5).File HeaderALTER SESSION SET EVENTS immediate trace name file_hdrs level n;1 控制文件中的文件头信息2 level 1 + 文件头信息3 level 2 + 数据文件头信息10 level 36).Control fileALTER SESSION SET EVENTS immediate trace name controlf level n;1 文件头信息2 level 1 + 数据库信息 + 检查点信息3 level 2 + 可重用节信息10 level 37).Redo log HeaderALTER SESSION SET EVENTS immediate trace name redohdr level n;1 控制文件中的redo log信息2 level 1 + 文件头信息3 level 2 + 日志文件头信息10 level 38).Redo logALTER SYSTEM DUMP LOGFILE FileName;ALTER SYSTEM DUMP LOGFILE FileNameSCN MIN MinSCN SCN MAX MaxSCN TIME MIN MinTime TIME MAX MaxTimeLAYER Layer OPCODE OpcodeDBA MIN File#.Block# DBA MAX File#.Block#RBA MIN LogFileSequence#.Block# RBA MAX LogFileSequence#.Block#;其中time = (yyyy - 1988) * 12 + mm - 1) * 31 + dd - 1) * 24 + hh) * 60 + mi) * 60 + ss;9).LoghistALTER SESSION SET EVENTS immediate trace name loghist level n;1 dump控制文件中最早和最迟的日志历史项1 dump 2n个日志历史项Oracle跟踪文件分为三种类型,一种是后台报警日志文件,记录数据库在启动、关闭和运行期间后台进程的活动情况,如表空间创建、回滚段创建、某些alter命令、日志切换、错误消息等。在数据库出现故障时,应首先查看该文件,但文件中的信息与任何错误状态没有必然的联系。后台报警日志文件保存BACKGROUND_DUMP_DEST参数指定的目录中,文件格式为SIDALRT.LOG。另一种类型是DBWR、LGWR、SMON等后台进程创建的后台跟踪文件。后台跟踪文件根据后台进程运行情况产生,后台跟踪文件也保存在BACKGROUND_DUMP_DEST参数指定的目录中,文件格式为siddbwr.trc、sidsmon.trc等。还有一种类型是由连接到Oracle的用户进程(Server Processes)生成的用户跟踪文件。这些文件仅在用户会话期间遇到错误时产生。此外,用户可以通过执行oracle跟踪事件(见后面)来生成该类文件,用户跟踪文件保存在USER_DUMP_DEST参数指定的目录中,文件格式为oraxxxxx.trc,xxxxx为创建文件的进程号(或线程号)。Oracle跟踪事件Oracle提供了一类命令,可以将Oracle各类内部结构中所包含的信息转储(dump)到跟踪文件中,以便用户能根据文件内容来解决各种故障。设置跟踪事件有两种方法,一种是在init.ora文件中设置事件,这样open数据库后,将影响到所有的会话。设置格式如下:EVENT=eventnumber trace name eventname forever, level lv# : .通过:符号,可以连续设置多个事件,也可以通过连续使用event来设置多个事件。另一种方法是在会话过程中使用alter session set events命令,只对当前会话有影响。设置格式如下:alter session set events event# |immediate trace name eventname forever , level levelnumber : .通过:符号,可以连续设置多个事件,也可以通过连续使用alter session set events 来设置多个事件。格式说明:event#指触发dump的事件号,事件号可以是Oracle错误号(出现相应错误时跟踪指定的事件)或oralce内部事件号,内部事件号在10000到10999之间,不能与immediate关键字同用。immediate关键字表示命令发出后,立即将指定的结构dump到跟踪文件中,这个关键字只用在altersession语句中,并且不能与 eventnumber、forever关键字同用。trace name 是关键字。eventname指事件名称(见后面),即要进行dump的实际结构名。若eventname为context,则指根据内部事件号进行跟踪。forever关键字表示事件在实例或会话的周期内保持有效状态,不能与immediate同用。level为事件级别关键字。但在dump错误栈(errorstack)时不存在级别。levelnumber表示事件级别号,一般从1到10,1表示只dump结构头部信息,10表示dump结构的所有信息。blockdump事件:dump数据文件、索引文件、回滚段文件结构alter session set events immediate trace name blockdump level 66666; -表示dump块地址为6666的数据块。在Oracle 8以后该命令已改为:alter system dump datafile 11 block 9; -表示dump数据文件号为11中的第9个数据块。controlf事件:dump控制文件结构alter session set events immediate trace name controlf level 10; -表示dump控制文件的所有内容。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 events immediate trace name redohdr level 10; -表示dump redo日志的完整文件头。注意:redo日志的内容dump可以采用下面的语句:alter system dump logfile logfilename;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; -表示dump 16个日志历史项。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 所有数据文件的完整文件头。errorstack事件:dump 错误栈信息通常Oracle发生错误时前台进程将得到一条错误信息,但某些情况下得不到错误信息,可以采用这种方式得到Oracle错误。alter session set events 604 trace name errorstack forever; -表示当出现604错误时,dump 错误栈和进程栈。systemstate事件:dump所有系统状态和进程状态alter session set events immediate trace name systemstate level 10; -表示dump 所有系统状态和进程状态。coalesec事件:dump指定表空间中的自由区间levelnumber以十六进制表示时,两个高位字节表示自由区间数目,两个低位字节表示表空间号,如0x00050000表示dump系统表空间中的5个自由区间,转换成十进制就是327680,即:alter session set events immediate trace name coalesec level 327680;processsate事件:dump进程状态alter session set events immediate trace name processsate level 10;library_cache事件:dump library cache信息alter session set events immediate trace name library_cache level 10;heapdump事件:dump PGA、SGA、UGA中的信息alter session set events immediate trace name heapdump level 1;row_cache事件:dump数据字典缓冲区中的信息alter session set events immediate trace name row_cache level 1; 内部事件号1、10013:用于监视事务恢复2、10015:转储UNDO SEGMENT头部3、10029:用于给出会话期间的登陆信息4、10030:用于给出会话期间的注销信息5、10032:转储排序的统计信息6、10033:转储排序增长的统计信息7、10045:跟踪Freelist管理操作8、10046:跟踪SQL语句9、10053:转储优化策略10、10059:模拟redo日志中的创建和清除错误11、10061:阻止SMON在启动时清除临时段12、10079:转储 SQL*NET统计信息13、10081:转储高水标记变化14、10104:转储Hash连接统计信息15、10128:转储分区休整信息16、10200:转储一致性读信息17、10201:转储一致性读中Undo应用18、10209:允许在控制文件中模拟错误19、10210:触发数据块检查事件20、10211:触发索引检查事件21、10213:模拟在写控制文件后崩溃22、10214:模拟在控制文件中的写错误,lv#1-9表示产生错误的块号,否则则每个控制文件将出错23、10215:模拟在控制文件中的读错误24、10220:转储Undo头部变化25、10221;转储Undo变化26、10224:转储索引的分隔与删除27、10225:转储基于字典管理的区间的变化28、10229:模拟在数据文件上的I/O错误29、10231:设置在全表扫描时忽略损坏的数据块alter session set events 10231 trace name context off;event = 10231 trace name context forever, level 10;30、10232:将设置为软损坏(DBMS_REPAIR包设置或DB_BLOCK_CHECKING为TRUE时设置)数据块dump到跟踪文件31、10235:用于内存堆检查alter session set events 10235 trace name context forever, level 1;32、10241:转储远程SQL执行33、10246:跟踪PMON进程34、10248:跟踪dispatch进程35、10249:跟踪MTS进程36、10252:模拟写数据文件头部错误37、10253:模拟写redo日志文件错误38、10262:允许连接时存在内存泄漏alter session set events 10262 trace name context forever, level 300;39、10270:转储共享游标40、10285:模拟控制文件头部损坏41、10286:模拟控制文件打开错误42、10287:模拟归档出错43、10357:调试直接路径机制44、10500:跟踪SMON进程45、10608:跟踪位图索引的创建46、10704:跟踪enqueues47、10706:跟踪全局enqueues48、10708:跟踪RAC的buffer cache49、10710:跟踪对位图索引的访问50、10711:跟踪位图索引合并操作51、10712:跟踪位图索引OR操作52、10713:跟踪位图索引AND操作53、10714:跟踪位图索引MINUS操作54、10715:跟踪位图索引向ROWID的转化55、10716:跟踪位图索引的压缩与解压56、10719:跟踪位图索引的修改57、10731:跟踪游标声明58、10928:跟踪PL/SQL执行59、10938:转储PL/SQL执行统计信息最后要说明的是,由于版本不同以上语法可能有些变化,但大多数还是可用的。附完整的跟踪事件列表,event No.10000 to 10999SET SERVEROUTPUT ONDECLAREerr_msg VARCHAR2(120);BEGINdbms_output.enable (1000000);FOR err_num IN 10000.10999LOOPerr_msg := SQLERRM (-err_num);IF err_msg NOT LIKE %Message |err_num| not found% THENdbms_output.put_line (err_msg);END IF;END LOOP;END;/ Event分类诊断事件大体上可以分为四类:转储类事件:它们主要用于转储Oracle的一些结构,例如转储一下控制文件、数据文件头等内容。捕捉类事件:它们用于捕捉一些Error事件的发生,例如捕捉一下ORA-04031发生时一些Rdbms信息,以判断是Bug还是其它原因引起的这方面的问题。改变执行途径类事件:它们用于改主一些Oracle内部代码的执行途径,例如设置10269将会使Smon进程不去合并那些Free的空间。跟踪类事件:这们用于获取一些跟踪信息以用于Sql调优等方面,最典型的便是10046了,将会对Sql进行跟踪。4、 其它说明:a 如果immediate放在第一个说明是无条件事件,即命令发出即转储到跟踪文件。b trace name位于第二、三项,除它们外的其它限定词是供Oracle内部开发组用的。c level通常位于1-10之间(10046有时用到12),10意味着转储事件所有的信息。例如当转储控制文件时,level1表示转储控制文件头,而level 10表明转储控制文件全部内容。d 转储所生成的trace文件在user_dump_dest初始化参数指定的位置。3、 使用DBMS_SYSTEM.SET_EV的方法a 过和定义如下DBMS_SYSTEM.SET_EV(SI Binary_integer,SE Binary_integer,EV Binary_integer,LE Binary_integer,NM Binary_integer);SI:即v$session中的sidSE:即v$session中的serial#EV:要设置的事件LE:要设置事件的级别NM:名称SQL EXECUTE SYS.DBMS_SYSTEM.SET_EV(sid,serial#,10046,12,);注意不要用oradug去跟踪oracle的smon,pmon等几个进程,操作不当可能会杀掉这几个后台进引起宕库。1、 我如何知道在系统中设置了哪些event?回答: a 如果你的事件是在init.ora中设置的可以用show parameter event;来查看b Michael R.Ault给的SQLset serveroutput on size 1000000declare event_level number;beginfor i in 10000.10999 loopsys.dbms_system.read_ev(i,event_level);if (event_level 0) thendbms_output.put_line(Event |to_char(i)| set at level |to_char(event_level);end if;end loop;end;/Appendix.Event 10719 - Trace Bitmap Index DML跟踪位图索引列的DML操作(引起位图索引改变的DML操作)ALTER SESSION SET EVENTS 10719 trace name context forever, level 1;Event 10730 - Trace Fine Grained Access Predicates跟踪细粒度审计的断语ALTER SESSION SET EVENTS 10730 trace name context forever, level 1;Event 10731 - Trace CURSOR Statements跟踪CURSOR的语句情况ALTER SESSION SET EVENTS 10731 trace name context forever, level level;LEVEL定义1:Print parent query and subquery2:Print subquery onlyEvent 10928 - Trace PL/SQL Execution跟踪PL/SQL执行情况ALTER SESSION SET EVENTS 10928 trace name context forever, level 1;Event 10938 - Dump PL/SQL Execution Statistics跟踪PL/SQL执行状态,使用前需要执行rdbms/admin下的tracetab.sqlALTER SESSION SET EVENTS 10938 trace name context forever, level 1;flush_cache刷新BUFFER CACHEALTER SESSION SET EVENTS immediate trace name flush_cache;DROP_SEGMENTS手工删除临时段。当这些临时段无法自动清除的时候可以手工清除alter session set events immediate trace name DROP_SEGMENTS level ts#+1;ts#是指要删除临时段的表空间的ts#Event 10608 - Trace Bitmap Index Creation跟踪BITMAP索引创建的详细过程ALTER SESSION SET EVENTS 10608 trace name context forever, level 10;Event 10704 - Trace Enqueues跟踪锁的使用情况ALTER SESSION SET EVENTS 10704 trace name context forever, level 1;Event 10706 - Trace Global Enqueue Manipulation跟踪全局锁的使用情况ALTER SESSION SET EVENTS 10706 trace name context forever, level 1;Event 10708 - Trace RAC Buffer Cache跟踪RAC环境下的BUFFER CACHEALTER SESSION SET EVENTS 10708 trace name context forever, level 10;Event 10710 - Trace Bitmap Index Access跟踪位图索引的访问情况ALTER SESSION SET EVENTS 10710 trace name context forever, level 1;Event 10711 - Trace Bitmap Index Merge Operation跟踪位图索引合并操作ALTER SESSION SET EVENTS 10711 trace name context forever, level 1;Event 10712 - Trace Bitmap Index OR Operation跟踪位图索引或操作情况ALTER SESSION SET EVENTS 10712 trace name context forever, level 1;Event 10713 - Trace Bitmap Index AND Operation跟踪位图索引与操作ALTER SESSION SET EVENTS 10713 trace name context forever, level 1;Event 10714 - Trace Bitmap Index MINUS Operation跟踪位图索引minus操作ALTER SESSION SET EVENTS 10714 trace name context forever, level 1;Event 10715 - Trace Bitmap Index Conversion to ROWIDs Operation跟踪位图索引转换ROWID操作ALTER SESSION SET EVENTS 10715 trace name context forever, level 1;Event 10716 - Trace Bitmap Index Compress/Decompress跟踪位图索引压缩和解压缩情况ALTER SESSION SET EVENTS 10716 trace name context forever, level 1;Event 10717 - Trace Bitmap Index CompactionALTER SESSION SET EVENTS 10717 trace name context forever, level 1;Event 10225 - Dump Changes to Dictionary Managed ExtentsDUMP字段管理的扩展变化ALTER SESSION SET EVENTS 10225 trace name context forever, level 1;Event 10231全表扫描时跳过坏块,在有坏块的情况下做数据拯救时很有用ALTER SYSTEM SET EVENTS 10231 trace name context forever,level 10;Event 10241 - Dump Remote SQL Execution远程SQL语句的执行信息ALTER SESSION SET EVENTS 10241 trace name context forever, level 1;Event 10246 - Trace PMON Process跟踪PMON进程只能修改参数,不能用ALTER SYSTEM set events 10246 trace name context forever, level 1;Event 10248 - Trace Dispatcher Processes跟踪DISPATCHER的工作情况ALTER SYSTEM set events 10248 trace name context forever, level 10;Event 10249 - Trace Shared Server (MTS) Processes跟踪共享服务器的工作情况alter system set event 10249 trace name context forever, level 10;Event 10270 - Debug Shared Cursors跟踪共享CURSORS的情况alter system set events 10270 trace name context forever, level 10;Event 10299 - Debug Prefetching跟踪表数据块和索引数据块的PREFETCHINGalter system set events 10299 trace name context forever, level 1Event 10357 - Debug Direct PathALTER SESSION SET EVENTS 10357 trace name context forever, level 1;Event 10390 - Dump Parallel Execution Slave Statistics跟踪并行操作中的SLAVE的状态ALTER SESSION SET EVENTS 10390 trace name context forever, level 1;Event 10391-Dump Parallel Execution Granule Allocation跟踪并行操作的粒度ALTER SESSION SET EVENTS 10391 trace name context forever, level 2;Event 10393 - Dump Parallel Execution Statistics跟踪并行操作的状态(每个SLAVE单独列出状态)ALTER SESSION SET EVENTS 10393 trace name context forever, level 1;Event 10500 - Trace SMON Process跟踪SMON进程event = 10500 trace name context forever, level 1Event 10065 - Restrict Library Cache Dump Output for State Object Dumps限制对象状态DUMP的时候LIBRARY CACHE信息的详细程度ALTER SESSION SET EVENTS 10065 trace name context forever, level level;LEVEL1 Address of library object only2 As level 1 plus library object lock details3 As level 2 plus library object handle and library object缺省是LEVEL 3Event 10079 - Dump SQL*Net StatisticsDump SQL*NeT的统计信息ALTER SESSION SET EVENTS 10079 trace name context forever, level 2;Event 10081 - Trace High Water Mark ChangesHWM的改变ALTER SESSION SET EVENTS 10081 trace name context forever, level 1;Event 10104 - Dump Hash Join StatisticsHASH JOIN的统计信息ALTER SESSION SET EVENTS 10104 trace name context forever, level 10;Event 10128 - Dump Partition Pruning Information分区表调整信息ALTER SESSION SET EVENTS 10128 trace name context forever, level level;Level取值:1:Dump pruning descriptor for each partitioned object2:Dump partition iterators4:Dump optimizer decisions about partition-wise joins8:Dump ROWID range scan pruning information在9.0.1或者后面的版本,在level 2后还需要建立如下的表:CREATE TABLE kkpap_pruning(partition_count NUMBER, iterator VARCHAR2(32),partition_level VARCHAR2(32),order_pt VARCHAR2(12), call_time VARCHAR2(12),part# NUMBER, subp# NUMBER, abs# NUMBER);Event 10200 - Dump Consistent ReadsDUMP一致读的信息ALTER SESSION SET EVENTS 10200 trace name context forever, level 1;Event 10201 - Dump Consistent Read Undo ApplicationDUMP一致性读涉及UNDO信息的内容ALTER SESSION SET EVENTS 10201 trace name context forever, level 1;Event 10220 - Dump Changes to Undo HeaderDump出Undo头信息的改变ALTER SESSION SET EVENTS 10220 trace name context forever, level 1;Event 10221 - Dump Undo ChangesDump Undo的改变ALTER SESSION SET EVENTS 10221 trace name context forever, level 7;Event 10224 - Dump Index Block Splits / Deletes索引块的分裂和删除信息ALTER SESSION SET EVENTS 10224 trace name context forever, level 1;Event 10013 - Monitor Transaction Recovery在Startup时跟踪事务恢复ALTER SESSION SET EVENTS 10013 trace name context forever, level 1;Event 10015 - Dump Undo Segment Headers在事务恢复后做Dump回退段头信息ALTER SESSION SET EVENTS 10015 trace name context forever, level 1;Event 10032 - Dump Sort StatisticsDump排序的统计信息ALTER SESSION SET EVENTS 10032 trace name context forever, level 10;Event 10033 - Dump Sort Intermediate Run Statistics排序过程中,内存排序区和临时表空间的交互情况ALTER SESSION SET EVENTS 10033 trace name context forever, level 10;Event 10045 - Trace Free List Management OperationsFREELIST的管理操作ALTER SESSION SET EVENTS 10045 trace name context forever, level 1;Event 10046 - Enable SQL Statement Trace跟踪SQL,有执行计划,邦定变量和等待的统计信息,level 12最详细ALTER SESSION SET EVENTS 10046 trace name context forever, level 12;LEVEL定义如下:1:SQL 语句,执行计划和执行状态

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论