Eine RDBA Adresse eines Datenbank Blockes aus einem Trace File dem Datenbank Block zuordnen

Aus dem Tracefile die RDBA Adresse lokalisieren:

BH (0x2cfdc7818) file#: 3 rdba: 0x05c01209 (3/524) class: 1 ba: 0x2ce5cf000

1. Schritt ⇒ wer lesen kann ist klar im Vorteil, hinter der RDBA seht die FN und die Block Nr.!

Überpürfen

Den RDBA Wert dazu in eine Dezimalzahl umwandeln, zum Beispiel unter Windows mit dem Calc Programm oder in SQL*Plus.

-- Auf die Anzahl der Stellen in der Format Maske achten 
-- und das Führende 0x weglassen!
 
 
SELECT to_number('05c01209','XXXXXXXXX') AS dec_val 
  FROM dual
/
 
     DEC_VAL
------------
    96473609
 
 
SELECT dbms_utility.data_block_address_file(96473609) relative_fno
    ,  dbms_utility.data_block_address_block(96473609) block# 
FROM dual
/
 
RELATIVE_FNO       BLOCK#
------------ ------------
          3          524
 

Segement dazu ermitteln:

SELECT ext.owner
     , ext.segment_name
     , ext.segment_type
     , ext.relative_fno
     , ext.partition_name
     , ext.tablespace_name	  
 FROM dba_extents ext 
WHERE ext.file_id = 3
  AND 524 BETWEEN ext.block_id AND ext.block_id + ext.blocks - 1
/