Re: find file_id or block_id from data block address

  • From: Prem <premjhere@xxxxxxxxx>
  • To: tanel.poder.003@xxxxxxx
  • Date: Tue, 27 Dec 2005 03:13:01 +0530

Hi Tanel , Thanks a lot for your reply.

I started this thread to investigate the following error in our v7.3.4
PROD database alert log.
ORA-00600: internal error code, arguments: [12700], [537037017], [5],
[], [], [], [], []

Metalink doc says that the second argument is the data block address.
We don't have
the packages you said on our PROD database. And

SELECT SEGMENT_NAME, SEGMENT_TYPE, OWNER FROM SYS.DBA_EXTENTS WHERE
537037017 BETWEEN BLOCK_ID AND BLOCK_ID + BLOCKS - 1;

This did not give me any result. My doubt is whether we can put the data block
address ( 537037017) in the above query !!!  Is that right ?

I also tried the following in another database which has got the
packages you said :
(is it okay to execute the below on any database which has got those packages
or is it to be done on the problem database only)

sys.dbms_utility.data_block_address_block(537037017) = 166105
sys.dbms_utility.data_block_address_file(537037017) = 128

With the above results , on the PROD database i tried :

SELECT SEGMENT_NAME, SEGMENT_TYPE, OWNER FROM SYS.DBA_EXTENTS WHERE 
FILE_ID = 128 AND 166105 BETWEEN BLOCK_ID AND
BLOCK_ID + BLOCKS - 1;

which gave me no results.

Is there any other way i can find out the file_id / object# from the
above ORA-600 error.
The trace file too did not give me any pointer about the file# or object# .

This being the case, how do i find which is the object in problem ?
Can you help me on this ?

Thanks and Regards,
Prem J.

Tanel Wrote :
>>Hi,

>>In newer versions, there are two functions under
dbms_utility.data_block_address_block
>>and data_block_address_file.dbms_utility.make_data_block_address
works the other way >too. If 7.3.4 doesn't have those functions, you
could just use a newer db version for
>>doing the calculations.

>>Tanel.
--
//www.freelists.org/webpage/oracle-l


Other related posts: