Re: Tracing invalid rowid ora-01410

  • From: "Jonathan Lewis" <jonathan@xxxxxxxxxxxxxxxxxx>
  • To: <oracle-l@xxxxxxxxxxxxx>
  • Date: Wed, 2 Aug 2006 13:37:03 +0100

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,
so I guess I'll have to check if things have changed recently.


Jonathan Lewis

The Co-operative Oracle Users' FAQ

Cost Based Oracle: Fundamentals

----- 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

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.


-- 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


Other related posts: