Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Decyphering LMT space bitmap

RE: Decyphering LMT space bitmap

From: <Paul.Parker_at_bmwna.com>
Date: Mon, 08 Apr 2002 12:23:27 -0800
Message-ID: <F001.0043EE1D.20020408122327@fatcity.com>


>From the 'Data Management and Storage Internal" notes,

Bitmapped Tablespace File Structure

A new bitmapped tablespace file has the following structure:

File Header						1 block
Bitmapped File Space Header			1 block
Head portion of of Bitmap Blocks		N blocks
Useful file blocks				U units (A unit is a number
of blocks)
Tail portion of Bitmap Blocks			M blocks

If a Unit = B blocks, then the total file size = 1 + 1 + N + U*B + M

Bitmapped File Space Header

...... (lots to type, I can if you really need it)

Bitmap blocks have 2 parts :

Bitmap control structure
Vector Dump

The fields in the bitmap control structure are:

RelFNo:	Relative file number to which the bitmap belongs
BeginBlock:	Which block number does the first bit represent
Flag:		Zero for permanent files, one for temp files
First:	Where to start looking for the free space (bit before first free
bit)
Free:		Number of free slots (bits) in the bitmap (not the file)

To read the bitmap, take each two-byte pair, least significant bit first. If there are not eight bits, pad to eight bits with zeroes. Hence 0x0F = 15 = 00001111. When written least significant bit first, the bitmap looks like this
11110000 --> used, used, used, used, free, free, free, free

Scanning for the first free extent will start at the 4th bit.

HTH Paul

-----Original Message-----
Sent: Monday, April 08, 2002 3:44 PM
To: Multiple recipients of list ORACLE-L

Out of curiosity I decided I wanted to look at what composed the extent map in locally-managed tablespaces.

I dumped the first 5 blocks of the tablespace's first datafile with 'alter system dump datafile ...' The results surprised me, as they appeared to consist of almost no data. The LMT in question contains a variety of segments and extents. How is the LMT bitmap organized?

Start dump data blocks tsn: 1 file#: 2 minblk 1 maxblk 1 Block 1 (file header) not dumped: use dump file header command

Start dump data blocks tsn: 1 file#: 2 minblk 2 maxblk 2 frmt: 0x02 chkval: 0x0000 type: 0x1d=KTFB Bitmapped File Space Header File Space Header Block:
Header Control:
RelFno: 2, Unit: 8192, Size: 524352, Flag: 1 Initial Area: 3, Tail: 524292, First: 30, Free: 34

Start dump data blocks tsn: 1 file#: 2 minblk 3 maxblk 3 frmt: 0x02 chkval: 0x0000 type: 0x1e=KTFB Bitmapped File Space Bitmap File Space Bitmap Block:
BitMap Control:
RelFno: 2, BeginBlock: 5, Flag: 0, First: 30, Free: 128994

FFFFFF3F00000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
... all zeros

Start dump data blocks tsn: 1 file#: 2 minblk 4 maxblk 4 frmt: 0x02 chkval: 0x0000 type: 0x1e=KTFB Bitmapped File Space Bitmap File Space Bitmap Block:
BitMap Control:
RelFno: 2, BeginBlock: 1056964613, Flag: 0, First: 0, Free: 129024

0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
... all zeros

FWIW: SQL> select count (*) from dba_extents where file_id = 2;

  COUNT(*)


        30

SQL> select extent_management from dba_data_files df, dba_tablespaces ts where df.tablespace_name = ts.tablespace_name and file_id = 2;

EXTENT_MAN



LOCAL
--
Jeremiah Wilton
http://www.speakeasy.net/~jwilton

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Jeremiah Wilton
  INET: jwilton_at_speakeasy.net

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: 
  INET: Paul.Parker_at_bmwna.com

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
Received on Mon Apr 08 2002 - 15:23:27 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US