DUMP对象的段头
在ORACLE中,每个段都包含一个段头。段头一般来说是某个段的第一个扩展的第一个块,段头包含段的信息(段的扩展情况、FREE LIST的数量等)。要DUMP段头的信息,首先需要定位某个段的段头所在的位置。通过下面的查询可以查看到段头的相关信息:
select segment_name, header_file, header_block
from dba_segments
where owner = '<segment owner>' and segment_name = '<segment name>';
比如:
select segment_name, header_file, header_block
from dba_segments
where owner = 'SCOTT' and segment_name = 'EMP';
SEGMENT_NAME HEADER_FILE HEADER_BLOCK
-------------------- ------------------ -------- ---------------
EMP 8 7411
以上的例子说明EMP的段头在8号文件的7411数据块。使用下面的命令可以把段头DUMP出来。
alter system dump datafile 8 block 7411;
产生的TRACE文件会存放在USER_DUMP_DEST参数指定的位置,如果没有设置这个参数,那么缺省的位置是$ORACLE_BASE/admin/<sid>/udump。 如果要DUMP ROLLBACK段,那么可以这样操作:
select segment_name, header_file, header_block
from dba_segments
where segment_name = 'RBS01';
SEGMENT_NAME HEADER_FILE HEADER_BLOCK
-------------------- ----------- ------------
RBS01 2 514
alter system dump datafile 2 block 514;
或者直接用下面的命令DUMP:
alter system dump undo header RBS01;