Oracle中DUMP的转储方法

2014-11-24 17:42:33 · 作者: · 浏览: 0

  什么是DUMP: 美[d∧mp] 转贮;转存;转贮数据 (内存信息)转贮,转存


  大家在学习研究Oracle的过程中,为了更深入的了解内部的机制,免不了要经常DUMP来研究学习。


  Oracle 11g的Trace文件存放路径:oracle\diag\rdbms\**\**\trace
  1、DUMP出控制文件
  alter system (session) set events 'immediate trace name controlf level 10'
  —————————————————————————————
  2、DUMP出日志文件分析
  alter system dump logfile logfilename;
  —————————————————————————————
  3、DUMP出日志文件头分析
  alter session set events 'immediate trace name REDOHDR level 10'
  ———————————————————————————
  4、DUMP出LIBRARY CACHE
  alter system (session) set events 'immediate trace name library_cache level 10'
  —————————————————————————————
  5、 DUMP出share_pool
  alter system (session) set events 'immediate trace name heapdump level 10'
  ———————————————————————————
  6、DUMP出所有数据文件头
  alter system (session) set events 'immediate trace name file_hdrs level 10';
  ———————————————————————————
  7、DUMP出数据文件(只能是alter system)
  alter system dump datafile n block m
  如
  select file_id,block_id,blocks from dba_extents where segment_name='EMPLOYEES'
  FILE_ID BLOCK_ID BLOCKS
  ---------- ---------- ------------------
  5 81 8
  SQL>alter system dump datafile 5 block 81;
  System altered.
  另外是做很具体的针对某行所在的BLOCK 并DUMP出来研究,可以用如下方法
  1、取BLOCK号
  select dbms_rowid.rowid_block_number(rowid) from wdjk1999;
  DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)
  78
  2、取文件号
  select file_id from dba_data_files where tablespace_name='WDJK1999'
  FILE_ID
  ----------
  16
  SQL>alter system dump datafile 16 block 78;
  System altered.
  —————————————————————————
  8、DUMP出索引
  SQL> select object_id from dba_objects where object_name=upper('index_name');
  OBJECT_ID
  ----------
  70591
  SQL> alter session set events 'immediate trace name TREEDUMP level 70591';
  —————————————————————————————