转 dump block

两种方法找到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博客 ” ,链接:http://blog.itpub.net/70612/viewspace-1019429/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/70612/viewspace-1019429/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值