两种方法找到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下执行:
- sys@Ti>select header_file, header_block, blocks from dba_segments where segment_name = 'TEST_TABLE';
- HEADER_FILE HEADER_BLOCK BLOCKS
- ----------- ------------ ----------
- 4 345443 19456
- 1 rows selected.
- sys@Ti> alter system dump datafile 4 block 345443;
- System altered.
- sys@Ti> select value from v$parameter where name = 'user_dump_dest';
- VALUE
- ----------------------------------------------------------------------------------------------------
- /opt/oracle10g/oracle/admin/eos/udump
可以这样查询当前连接的pid:
- select spid from v$session s, v$process p where p.addr = s.paddr and s.audsid = sys_context('userenv','sessionid')
- ALTER SESSION SET TRACEFILE_IDENTIFIER = 'WAHAHA'
还可以一次dump多个块,像这样:
- alter system dump datafile block min block max
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/70612/viewspace-1019429/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/70612/viewspace-1019429/