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:Rollback Segment Question

Re:Rollback Segment Question

From: <dgoulet_at_vicr.com>
Date: Wed, 25 Jul 2001 11:38:22 -0700
Message-ID: <F001.00354F86.20010725115156@fatcity.com>

Kamel,

    Yours is an old question and I really doubt that recreating the rollback segment had anything to do with correcting the error.

    Rollback segments are a global resource used by every session connecting to the database. The misconception is that each session acquires one segment where all of the data it needs is stored. This is only true for that data needed to rollback the session's transaction(s). If any table that your transaction is interested in has been changed by another session the data needed for a read consistent view of the table can be in a different rollback segment all together. Now when that session disconnects or commits the data in their segment may be released by the RDBMS. Now this can cause a problem in your session since Oracle is incapable of creating the consistent view of one or more data blocks based on the SCN at the time you started your transaction. Hence the "Snapshot too old" error. In reality the problem is not in your procedures, but in the fact that others are changing data under you at the same time.

    There are a number of possible solutions to this on long running transactions, like using the "for update" clause which will take out a row level lock for each row your interested in.

Dick Goulet

____________________Reply Separator____________________
Author: GL2Z/ INF  DBA BENLATRECHE <kbenlatreche_at_lth.sonatrach.dz>
Date:       7/25/2001 7:50 AM

Hi All

 I had a long PL/SQL prg to run .

 I created a special rollback segment for that script with the storage of (initial 1 m next 1m minextents 2).

 After a few minutes of running I got the "Snapshot too old" error.

 In the v_$rollstat view I got : extents=2, rssize ~ 2 M, hwmsize ~ 2 M.  

I recreated the RBS with minextents 100, at this time my program run succefully.

My question is why in the first case the RBS didn't growth automatically by allocating a new extents until maxetents value ?

Thank you

Best Regards
Kamel Benlatreche
--

Please see the official ORACLE-L FAQ: http://www.orafaq.com
--

Author: GL2Z/ INF DBA BENLATRECHE
  INET: kbenlatreche_at_lth.sonatrach.dz

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: dgoulet_at_vicr.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 Wed Jul 25 2001 - 13:38:22 CDT

Original text of this message

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