ITPub博客

首页 > IT职业 > IT生活 > 转 dump block

转 dump block

原创 IT生活 作者:polestar123 时间:2009-03-25 18:19:48 0 删除 编辑

两种方法找到block号

1、执行dbms_rowid.rowid_block_number

2、查询dba_segments

select header_file, header_block, blocks from dba_segments where segment_name = 'EMP';

alter system dump datafile 6 block 47;
alter system dump datafile 6 block min 43 block max 51;

SQL> select dbms_rowid.rowid_block_number(rowid) from T4;

DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)
————————————
1514
1514

这个常用来DUMP数据块号,分析

比如,我要dump表test_table的某个块,则在sqlplus下执行:

  1. sys@Ti>select header_file, header_block, blocks from dba_segments where segment_name = 'TEST_TABLE';

  2. HEADER_FILE HEADER_BLOCK BLOCKS
  3. ----------- ------------ ----------
  4. 4 345443 19456

  5. 1 rows selected.
复制代码
然后我dump第一块:
  1. sys@Ti> alter system dump datafile 4 block 345443;

  2. System altered.
复制代码
这样就可以将该块dump到udump目录下了。什么?你不知道udump是哪里?那就这样查:
  1. sys@Ti> select value from v$parameter where name = 'user_dump_dest';

  2. VALUE
  3. ----------------------------------------------------------------------------------------------------
  4. /opt/oracle10g/oracle/admin/eos/udump
复制代码
生成文件的命名方式是”${ORACLE_SID}_ora_${PID}.trc“

可以这样查询当前连接的pid:
  1. select spid from v$session s, v$process p where p.addr = s.paddr and s.audsid = sys_context('userenv','sessionid')
复制代码
如果你嫌名字不够醒目,那么就这样:
  1. ALTER SESSION SET TRACEFILE_IDENTIFIER = 'WAHAHA'
复制代码
这样命名方式就会变成”${ORACLE_SID}_ora_${PID}_WAHAHA.trc“

还可以一次dump多个块,像这样:
  1. alter system dump datafile block min block max
复制代码
[@more@]

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

请登录后发表评论 登录
全部评论

注册时间:2009-05-22

  • 博文量
    110
  • 访问量
    438371