RE: Tracing invalid rowid ora-01410

  • From: "Laimutis Nedzinskas" <Laimutis.Nedzinskas@xxxxxxxxxxxxx>
  • To: <oracle-l@xxxxxxxxxxxxx>
  • Date: Wed, 2 Aug 2006 13:38:11 -0000

Interesting.
If this is the case then the index rebuild is quite special operation.
It must have more effects than just ora-1410. 

My understanding is that at least for regular table DML index is protected by 
consistency algorithm. But rebuild really can be special. if it is not an 
online rebuild then it really [b]locks DML on the table which is done for a 
reason.



-----Original Message-----
From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On 
Behalf Of Jonathan Lewis
Sent: 2. ágúst 2006 12:37
To: oracle-l@xxxxxxxxxxxxx
Subject: Re: Tracing invalid rowid ora-01410


Yes, it really is so.

If you re-use the space where the index used to be, the run-time engine won't 
see the old index block - it will see a block that belongs to a completely 
different object. (Remember that Oracle navigates through indexes using block 
ids. Rowids are only used to get from index leaf blocks to table blocks.) The 
object_id mismatch will result in Oracle error ORA-01410 - unfortunately  it's 
an error number that has been hijacked and mis-used, so the text is not 
appropriate for this specific problem.

I think the last time I checked this was Oracle 9.2.0.4, so I guess I'll have 
to check if things have changed recently.

Regards

Jonathan Lewis
http://www.oracle.com/technology/community/oracle_ace/ace1.html#lewis

The Co-operative Oracle Users' FAQ
http://www.jlcomp.demon.co.uk/faq/ind_faq.html

Cost Based Oracle: Fundamentals
http://www.jlcomp.demon.co.uk/cbo_book/ind_book.html


----- Original Message -----
From: "Laimutis Nedzinskas" <Laimutis.Nedzinskas@xxxxxxxxxxxxx>
To: <oracle-l@xxxxxxxxxxxxx>
Sent: Wednesday, August 02, 2006 1:11 PM
Subject: RE: Tracing invalid rowid ora-01410


Is it really so? 
Consistency is enforced bellow indexes or tables. It is enforced at
block level.
The previous version of the index should still see the previous version
of the table blocks, shouldn't it? 

-----Original Message-----
From: oracle-l-bounce@xxxxxxxxxxxxx
[mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Jonathan Lewis

Possible cause:


ORA-01410 can be the result of one session working through a long
running query that depends on an index that gets rebuilt by another
session 

The index "moves", but the first session is still using the previous
version of the index (read consistency across DDL).  If the space freed
by the rebuild is then re-used, the first session is likely to crash
with a 1410.

    
Fyrirvari/Disclaimer
http://www.landsbanki.is/disclaimer
--
//www.freelists.org/webpage/oracle-l




-- 
Internal Virus Database is out-of-date.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.10.3/394 - Release Date: 20/07/2006


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


Fyrirvari/Disclaimer
http://www.landsbanki.is/disclaimer
--
//www.freelists.org/webpage/oracle-l


Other related posts: