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: Tracing invalid rowid ora-01410

RE: Tracing invalid rowid ora-01410

From: Laimutis Nedzinskas <Laimutis.Nedzinskas_at_landsbanki.is>
Date: Wed, 2 Aug 2006 13:38:11 -0000
Message-ID: <5A8896FB2AFC5445A7DCFC5903CCA6B02CA338@W03856.li01r1d.lais.net>


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_at_freelists.org [mailto:oracle-l-bounce_at_freelists.org] On Behalf Of Jonathan Lewis Sent: 2. ágúst 2006 12:37
To: oracle-l_at_freelists.org
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

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_at_freelists.org
[mailto:oracle-l-bounce_at_freelists.org] 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
--

http://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

--

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

Fyrirvari/Disclaimer
http://www.landsbanki.is/disclaimer
--

http://www.freelists.org/webpage/oracle-l Received on Wed Aug 02 2006 - 08:38:11 CDT

Original text of this message

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