湖北佛 发表于 2013-9-8 22:26:20

块定位

sys@OMREP> select segment_name,tablespace_id,header_file,header_block from sys_dba_segs where segment_name='T';


SEGMENT_NAME                                                                      TABLESPACE_ID HEADER_FILE HEADER_BLOCK
--------------------------------------------------------------------------------- ------------- ----------- ------------
T                                                                                             4         4      21578

sys@OMREP> alter system dump datafile 4 block min 21576 block max 21580;         

sys@OMREP> @trace

trace_file_name
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/u01/app/oracle/diag/rdbms/omrep/omrep/trace/omrep_ora_4759.trc

sys@OMREP> !vim /u01/app/oracle/diag/rdbms/omrep/omrep/trace/omrep_ora_4759.trc

buffer tsn: 4 rdba: 0x01005448 (4/21576)
scn: 0x0000.001d6d8e seq: 0x03 flg: 0x04 tail: 0x6d8e2003
frmt: 0x02 chkval: 0x1fd5 type: 0x20=FIRST LEVEL BITMAP BLOCK

buffer tsn: 4 rdba: 0x01005449 (4/21577)
scn: 0x0000.001d6d8e seq: 0x09 flg: 0x04 tail: 0x6d8e2109
frmt: 0x02 chkval: 0xb0b1 type: 0x21=SECOND LEVEL BITMAP BLOCK

BH (0x2f7e85e8) file#: 4 rdba: 0x0100544a (4/21578) class: 4 ba: 0x2f4f8000
set: 3 pool 3 bsz: 8192 bsi: 0 sflg: 2 pwc: 2,28

如果数据块很多的话,可能会出现L3

sys@OMREP> select segment_name,file_id,block_id from dba_extents where file_id=4 and 21576 between block_id and block_id+blocks;

SEGMENT_NAME                                                                         FILE_ID   BLOCK_ID
--------------------------------------------------------------------------------- ---------- ----------
TEST                                                                                       4      21568
T                                                                                          4      21576

sys@OMREP> select segment_name,file_id,block_id from dba_extents where file_id=4 and 21576 between block_id and block_id+blocks-1;

SEGMENT_NAME                                                                         FILE_ID   BLOCK_ID
--------------------------------------------------------------------------------- ---------- ----------
T                                                                                          4      21576

sys@OMREP> select segment_name,header_file,header_block from dba_segments where header_file=4 and header_block between 21576 and 21576+3;

SEGMENT_NAME                                                                      HEADER_FILE HEADER_BLOCK
--------------------------------------------------------------------------------- ----------- ------------
T                                                                                           4      21578

页: [1]
查看完整版本: 块定位