Oracle常用dump命令
Memory Dumps
1).Global Area
ALTER SESSION SET EVENTS 'immediatetrace name global_area level n';
1 包含PGA 2包含SGA 4 包含UGA 8 包含indrect memory
2).Library Cache
ALTER SESSION SET EVENTS 'immediatetrace name library_cache level n';
1 library cache统计信息 2包含hash table histogram
3 包含object handle 4 包含object结构(Heap 0)
3).Row Cache
ALTER SESSION SET EVENTS 'immediatetrace name row_cache level n';
1 row cache统计信息 2包含hash table histogram 8包含object结构
4).Buffers
ALTER SESSION SET EVENTS 'immediatetrace name buffers level n';
1 buffer header 2level 1 + block header
3 level 2 + block contents 4level 1 + hash chain
5 level 2 + hash chain 6level 3 + hash chain
8 level 4 + users/waiters 9 level 5 + users/waiters
10 level 6 + users/waiters
5).Buffer
ALTER SESSION SET EVENTS 'immediatetrace name buffer level n';
n为某个指定block的rdba,该命令可以转储某个block在buffer中的所有版本。
6).Heap
ALTER SESSION SET EVENTS 'immediatetrace name heapdump level level';
1 PGA摘要 2SGA摘要 4 UGA摘要
8 Current call(CGA)摘要 16User call(CGA)摘要 32Large call(LGA)摘要
1025 PGA内容 2050SGA内容 4100 UGA内容
8200 Current call内容 16400User call内容 32800Large call内容
7).Sub Heap
Oracle 9.0.1版本之前
ALTER SESSION SET EVENTS 'immediatetrace name heapdump_addr level n';
若n为subheap的地址,转储的是subheap的摘要信息
若n为subheap的地址+1,转储的则是subheap的内容
Oracle 9.2.0版本之后
ALTER SESSION SET EVENTS 'immediatetrace name heapdump_addr level n, addr m';
其中m为subheap的地址,n为1转储subheap的摘要,n为2转储subheap的内容
8).Process State
ALTER SESSION SET EVENTS 'immediatetrace name processstate level n';
9).System State
ALTER SESSION SET EVENTS 'immediatetrace name systemstate level n';
10).Error State
ALTER SESSION SET EVENTS 'immediatetrace name errorstack level n';
0 Error stack 1level 0 + function call stack
2 level 1 + process state 3level 2 + context area
11).Hang Analysis
ALTER SESSION SET EVENTS 'immediatetrace name hanganalyze level n';
12).Work Area
ALTER SESSION SET EVENTS 'immediatetrace name workareatab_dump level n';
1 SGA信息 2Workarea Table摘要信息 3Workarea Table详细信息
13).Latches
ALTER SESSION SET EVENTS 'immediatetrace name latches level n';
1 latch信息 2统计信息
14).Events
ALTER SESSION SET EVENTS 'immediatetrace name events level n';
1 session 2process 3 system
15).Locks
ALTER SESSION SET EVENTS 'immediatetrace name locks level n';
16).Shared Server Process
ALTER SESSION SET EVENTS 'immediatetrace name shared_server_state level n';
n取值为1~14
17).Background Messages
ALTER SESSION SET EVENTS 'immediatetrace name bg_messages level (pid+1)';
FileDumps
1).Block
ALTER SYSTEM DUMP DATAFILE file#BLOCK block#;
ALTER SYSTEM DUMP DATAFILE file# BLOCKMIN min# BLOCK MAX max#;
2).Tree Dump
ALTER SESSION SET EVENTS 'immediatetrace name treedump level object_id';
3).Undo Segment Header
ALTER SYSTEM DUMP UNDO_HEADER'segment_name';
4).Undo for a Transaction
ALTER SYSTEM DUMP UNDO BLOCK'segment_name' XID xidusnxidslotxidsqn;
5).File Header
ALTER SESSION SET EVENTS 'immediatetrace name file_hdrs level n';
1 控制文件中的文件头信息 2level 1 + 文件头信息
3 level 2 + 数据文件头信息 10level 3
6).Control file
ALTER SESSION SET EVENTS 'immediatetrace name controlf level n';
1 文件头信息 2level 1 + 数据库信息 + 检查点信息
3 level 2 + 可重用节信息 10level 3
7).Redo log Header
ALTER SESSION SET EVENTS 'immediatetrace name redohdr level n';
1 控制文件中的redo log信息 2 level 1 + 文件头信息
3 level 2 + 日志文件头信息 10level 3
8).Redo log
ALTER SYSTEM DUMP LOGFILE'FileName';
ALTER SYSTEM DUMP LOGFILE 'FileName'
SCN MIN MinSCNSCN MAX MaxSCNTIME MINMinTimeTIME MAX MaxTime
LAYER LayerOPCODE Opcode
DBA MIN File#.Block# DBA MAX File#.Block#
RBA MIN LogFileSequence#.Block# RBA MAXLogFileSequence#.Block#;
其中time = ((((yyyy - 1988) * 12 + mm -1) * 31 + dd - 1) * 24 + hh) * 60 + mi) * 60 + ss;
9).Loghist
ALTER SESSION SET EVENTS 'immediatetrace name loghist level n';
1 dump控制文件中最早和最迟的日志历史项 >1dump 2^n个日志历史项
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来设置多个事件。
另一种方法是在会话过程中使用altersession set events命令,只对当前会话有影响。设置格式如下:
alter session set events '[event# |immediate]trace name eventname [forever] [, level levelnumber] : .......'
通过:符号,可以连续设置多个事件,也可以通过连续使用altersession 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 blockdumplevel 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 level10'; --表示dump控制文件的所有内容。
redohdr事件:dump redo日志的头部信息
alter session set events 'immediate trace name redohdr level1'; --表示dump redo日志头部的控制文件项。
alter session set events 'immediate trace name redohdr level2'; --表示dump redo日志的通用文件头。
alter session set events 'immediate trace name redohdr level10'; --表示dump redo日志的完整文件头。
注意:redo日志的内容dump可以采用下面的语句:
alter system dump logfile 'logfilename';
loghist事件:dump控制文件中的日志历史项
alter session set events 'immediate trace name loghist level1'; --表示只dump最早和最迟的日志历史项。
levelnumber大于等于2时,表示2的levelnumber次方个日志历史项。
alter session set events 'immediate trace name loghist level4'; --表示dump 16个日志历史项。
file_hdrs事件:dump 所有数据文件的头部信息
alter session set events 'immediate trace name file_hdrslevel 1'; --表示dump 所有数据文件头部的控制文件项。
alter session set events 'immediate trace name file_hdrslevel 2'; --表示dump 所有数据文件的通用文件头。
alter session set events 'immediate trace name file_hdrslevel 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 systemstatelevel 10'; --表示dump 所有系统状态和进程状态。
coalesec事件:dump指定表空间中的自由区间
levelnumber以十六进制表示时,两个高位字节表示自由区间数目,两个低位字节表示表空间号,如0x00050000表示dump系统表空间中的5个自由区间,转换成十进制就是327680,即:
alter session set events 'immediate trace name coalesec level327680';
processsate事件:dump进程状态
alter session set events 'immediate trace name processsatelevel 10';
library_cache事件:dump library cache信息
alter session set events 'immediate trace name library_cachelevel 10';
heapdump事件:dump PGA、SGA、UGA中的信息
alter session set events 'immediate trace name heapdump level1';
row_cache事件:dump数据字典缓冲区中的信息
alter session set events 'immediate trace name row_cachelevel 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, level10";
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:跟踪enqueues
47、10706:跟踪全局enqueues
48、10708:跟踪RAC的buffer cache
49、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.10000to 10999
SET SERVEROUTPUT ON
DECLARE
err_msgVARCHAR2(120);
BEGIN
dbms_output.enable(1000000);
FORerr_num IN 10000..10999
LOOP
err_msg:= SQLERRM (-err_num);
IFerr_msg NOT LIKE '%Message '||err_num||' not found%' THEN
dbms_output.put_line(err_msg);
ENDIF;
ENDLOOP;
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( SIBinary_integer,SEBinary_integer,
EV Binary_integer,LEBinary_integer,
NM Binary_integer);
SI : 即v$session中的sid
SE : 即v$session中的serial#
EV : 要设置的事件
LE : 要设置事件的级别
NM : 名称
SQL> EXECUTESYS.DBMS_SYSTEM.SET_EV(sid,serial#,10046,12,'');
注意不要用oradug去跟踪oracle的smon,pmon等几个进程,操作不当可能会杀掉这几个后台进引起宕库。
1、我如何知道在系统中设置了哪些event?
回答:a.如果你的事件是在init.ora中设置的可以用show parameter event;来查看
b. Michael R.Ault给的SQL
setserveroutput on size1000000
declareevent_levelnumber;
begin
fori in 10000..10999loop
sys.dbms_system.read_ev(i,event_level);
if (event_level> 0)then
dbms_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 subquery
2:Printsubquery only
Event 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.sql
ALTER SESSION SET EVENTS '10938 trace name context forever,level 1';
flush_cache
刷新BUFFER CACHE
ALTER SESSION SET EVENTS 'immediate trace name flush_cache';
DROP_SEGMENTS
手工删除临时段。当这些临时段无法自动清除的时候可以手工清除
alter session set events 'immediate trace name DROP_SEGMENTSlevel 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 CACHE
ALTER 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 ROWIDsOperation
跟踪位图索引转换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 Compaction
ALTER SESSION SET EVENTS '10717 trace name context forever,level 1';
Event 10225 - Dump Changes to Dictionary Managed Extents
DUMP字段管理的扩展变化
ALTER SESSION SET EVENTS '10225 trace name context forever,level 1';
Event 10231
全表扫描时跳过坏块,在有坏块的情况下做数据拯救时很有用
ALTER SYSTEM SET EVENTS '10231 trace name contextforever,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 SYSTEMset events "10246 trace name context forever, level 1";
Event 10248 - Trace Dispatcher Processes
跟踪DISPATCHER的工作情况
ALTER SYSTEM set events "10248 trace name contextforever, 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 contextforever, level 10";
Event 10299 - Debug Prefetching 跟踪表数据块和索引数据块的PREFETCHING
alter system set events "10299 trace name contextforever, level 1"
Event 10357 - Debug Direct Path
ALTER 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 1"
Event 10065 - Restrict Library Cache Dump Output for StateObject Dumps
限制对象状态DUMP的时候LIBRARY CACHE信息的详细程度
ALTER SESSION SET EVENTS '10065 trace name context forever,level level';
LEVEL
1 Address of library object only
2 As level 1 plus library object lock details
3 As level 2 plus library object handle and library object
缺省是LEVEL 3
Event 10079 - Dump SQL*Net Statistics
Dump SQL*NeT的统计信息
ALTER SESSION SET EVENTS '10079 trace name context forever,level 2';
Event 10081 - Trace High Water Mark Changes
HWM的改变
ALTER SESSION SET EVENTS '10081 trace name context forever,level 1';
Event 10104 - Dump Hash Join Statistics
HASH 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 object
2:Dump partition iterators
4:Dump optimizer decisions about partition-wise joins
8:Dump ROWID range scan pruning information
在9.0.1或者后面的版本,在level 2后还需要建立如下的表:
CREATE TABLE kkpap_pruning(partition_count NUMBER, iteratorVARCHAR2(32),
partition_levelVARCHAR2(32),
order_ptVARCHAR2(12), call_time VARCHAR2(12),
part# NUMBER, subp# NUMBER, abs# NUMBER);
Event 10200 - Dump Consistent Reads
DUMP一致读的信息
ALTER SESSION SET EVENTS '10200 trace name context forever, level1';
Event 10201 - Dump Consistent Read Undo Application
DUMP一致性读涉及UNDO信息的内容
ALTER SESSION SET EVENTS '10201 trace name context forever,level 1';
Event 10220 - Dump Changes to Undo Header
Dump出Undo头信息的改变
ALTER SESSION SET EVENTS '10220 trace name context forever,level 1';
Event 10221 - Dump Undo Changes
Dump 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 Statistics
Dump排序的统计信息
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 Operations
FREELIST的管理操作
ALTER SESSION SET EVENTS '10045 trace name context forever,level 1';
Event 10046 - Enable SQL Statement Trace
跟踪SQL,有执行计划,邦定变量和等待的统计信息,level12最详细
ALTER SESSION SET EVENTS '10046 trace name context forever,level 12';
LEVEL定义如下:
1:SQL 语句,执行计划和执行状态
4:1的内容加上绑定变量信息
8:1的信息加上等待事件信息
12:1+4+8
Event 10053 - Dump Optimizer Decisions
在分析SQL语句时,Dump出优化器所做的选择,级别level 1最详细
ALTER SESSION SET EVENTS '10053 trace name context forever,level 1';
LEVEL定义如下:
1:状态和估算信息
2:只显示估算信息
Event 10060 - Dump Predicates
DUMP SQL语句中的断语信息,需要在需要DUMP的用户下创建以下表
ALTER SESSION SET EVENTS '10060 trace name context forever,level 1';
CREATE TABLE kkoipt_table(c1 INTEGER, c2 VARCHAR2(80));
断语信息会写入该表
test
CHIEFTA-SQL>select header_file, header_block fromdba_segments where segment_name='TTB';
HEADER_FILE HEADER_BLOCK
----------- ------------
4 15059
CHIEFTA-SQL>alter system dump datafile 4 block 15059;
System altered.
oracle@linux-znf9:/opt/u01/admin/DBNODE1/udump> catdbnode1_ora_7800.trc
/opt/u01/admin/DBNODE1/udump/dbnode1_ora_7800.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 -64bit Production
With the Partitioning, OLAP, Data Mining and Real ApplicationTesting options
ORACLE_HOME = /opt/oracle/product/10.2.0.4/db_1
System name: Linux
Node name: linux-znf9
Release: 2.6.16.60-0.54.5-smp
Version: #1 SMPFri Sep 4 01:28:03 UTC 2009
Machine: x86_64
Instance name: DBNODE1
Redo thread mounted by this instance: 1
Oracle process number: 30
Unix process pid: 7800, image: oracle@linux-znf9 (TNS V1-V3)
*** 2011-12-19 14:44:44.401
*** ACTION NAME:() 2011-12-19 14:44:44.401
*** MODULE NAME:(sqlplus@linux-znf9 (TNS V1-V3)) 2011-12-1914:44:44.401
*** SERVICE NAME:(SYS$USERS) 2011-12-19 14:44:44.401
*** SESSION ID:(66.20414) 2011-12-19 14:44:44.401
Start dump data blocks tsn: 4 file#: 4 minblk 15059 maxblk15059
buffertsn: 4 rdba: 0x01003ad3 (4/15059)
scn: 0x0000.18258a81 seq: 0x01 flg: 0x00 tail: 0x8a812301
frmt: 0x02 chkval: 0x0000 type: 0x23=PAGETABLE SEGMENT HEADER
Hex dump of block: st=0, typ_found=1
Dump of memory from 0x00000000066FD000 to 0x00000000066FF000
0066FD000 0000A223 01003AD3 18258A81 00010000 [#....:....%.....]
0066FD010 00000000 00000000 00000000 00000000 [................]
0066FD020 00000000 00000001 00000008 00000A9C [................]
0066FD030 00000000 00000004 00000008 01003AD5 [.............:..]
0066FD040 00000000 00000000 00000000 00000004 [................]
0066FD050 00000000 00000000 00000000 00000000 [................]
0066FD060 00000004 00000008 01003AD5 00000000 [.........:......]
0066FD070 00000000 00000000 00000004 01003AD1 [.............:..]
0066FD080 01003AD1 00000000 00000000 00000000 [.:..............]
0066FD090 00000000 00000000 00000000 00000000 [................]
Repeat 3 times
0066FD0D0 00000001 00002000 00000000 00001434 [..... ......4...]
0066FD0E0 00000000 01003AD2 00000001 01003AD1 [.....:.......:..]
0066FD0F0 01003AD2 00000000 00000000 00000000 [.:..............]
0066FD100 00000000 00000000 00000001 00000000 [................]
0066FD110 000071C3 10000000 01003AD1 00000008 [.q.......:......]
0066FD120 00000000 00000000 00000000 00000000 [................]
Repeat 152times
0066FDAB0 01003AD1 01003AD4 00000000 00000000 [.:...:..........]
0066FDAC0 00000000 00000000 00000000 00000000 [................]
Repeat 151times
0066FE440 00000000 00000000 01003AD2 00000000 [.........:......]
0066FE450 00000000 00000000 00000000 00000000 [................]
Repeat 185times
0066FEFF0 00000000 00000000 00000000 8A812301 [.............#..]
Extent Control Header
-----------------------------------------------------------------
Extent Header::spare1: 0 spare2: 0 #extents: 1 #blocks: 8
last map 0x00000000 #maps: 0 offset: 2716
Highwater:: 0x01003ad5ext#: 0 blk#:4 ext size: 8
#blocks in seg.hdr'sfreelists: 0
#blocks below: 4
mapblk 0x00000000 offset: 0
Unlocked
--------------------------------------------------------
Low HighWaterMark :
Highwater:: 0x01003ad5ext#: 0 blk#:4 ext size: 8
#blocks in seg.hdr'sfreelists: 0
#blocks below: 4
mapblk 0x00000000 offset: 0
Level 1 BMB for HighHWM block: 0x01003ad1
Level 1 BMB for LowHWM block: 0x01003ad1
--------------------------------------------------------
Segment Type: 1 nl2:1 blksz: 8192 fbsz: 0
L2 Array startoffset: 0x00001434
First Level 3BMB: 0x00000000
L2 Hint forinserts: 0x01003ad2
Last Level 1BMB: 0x01003ad1
Last Level IIBMB: 0x01003ad2
Last Level IIIBMB: 0x00000000
Map Header::next 0x00000000 #extents: 1 obj#: 29123 flag: 0x10000000
Inc # 0
Extent Map
-----------------------------------------------------------------
0x01003ad1 length:8
Auxillary Map
--------------------------------------------------------
Extent 0 : L1 dba: 0x01003ad1 Data dba: 0x01003ad4
--------------------------------------------------------
Second Level Bitmapblock DBAs
--------------------------------------------------------
DBA 1: 0x01003ad2
End dump data blocks tsn: 4 file#: 4 minblk 15059 maxblk15059
CHIEFTA-SQL>alter session set events 'immediate trace nameredohdr level 10';
Session altered.
CHIEFTA-SQL>update test01.ttb set AMT_BAL=1234567 whereDATE_ACCT='20110703';
1 row updated.
CHIEFTA-SQL>commit;
Commit complete.