Dumps
Individual Buffers
In Oracle 8.0 and above is is possible to dump buffer all buffers
currently in the cache for a specific block
For example where a block has been modified and is subject to consistent
read from a number of transactions, there may be more than one copy of the
block in the buffer cache
First identify the tablespace number for the block e.g for tablespace TS01
SELECT ts# FROM sys.ts$
WHERE name = 'TS01';
Set the tablespace number using
ALTER SESSION SET EVENTS
'immediate trace name set_tsn_p1 level level';
where level is the tablespace number + 1
Identify the relative DBA for the block
This is equal to
RelativeFileNumber * 4194304 + BlockNumber
e.g. for a block with relative file number of 5 and a block number of 127874
5 * 4194304 + 127874 = 21099394
Dump the buffer using
ALTER SESSION SET EVENTS
'immediate trace name buffer level level';
where level is the relative DBA e.g.
ALTER SESSION SET EVENTS
'immediate trace name buffer level 21099394';
|