What does "rollback segment too small" mean?

From: Mike Williams <mikew_at_gopher.dosli.govt.nz>
Date: 07 Feb 1995 21:42:28 GMT
Message-ID: <MIKEW.95Feb8104229_at_gopher.dosli.govt.nz>


  This may seem like a REALLY stupid question, with a REALLY obvious   answer (and it probably is).

  I help administer a host that is getting a rash of ORA-01555 errors

    01555, 00000, "snapshot too old (rollback segment too small)"
// *Cause: rollback records needed by a reader for consistent read are
    // overwritten by other writers
// *Action: Use larger rollback segments

  during a long-running query. We have 3 tablespaces:

  • Used --- --- Free --- Tablespace Size %Used Exts Segs Bytes Exts Gaps Bytes ---------- ---- ----- ---- ---- ----- ---- ---- ----- SYSTEM 160M 4.7% 216 87 7644K 28 23 153M GIS 2390M 85.9% 1211 417 2052M 180 155 338M TEMP 150M 33.3% 10 1 50M 44 2 100M
  and one extra rollback segment beyond SYSTEM:
Segment	  Tablespace	Initial	    Next    Min Max	Status
-------	  ----------	-------	    ----    ---	---	------
SYSTEM	  SYSTEM	   50K	     50K      2  99	IN USE
RS_TEMP	  TEMP		    5M	      5M     10  99	IN USE

  The error message seems to imply that the rollback segment has reached   it's max extents, and can grow no bigger. Is that correct? However, it   should not be possible for RS_TEMP to reach it's maximum 99 extents, 'cos   the TEMP tablespace is only 150M. If Oracle trying to allocate more than   150M for RS_TEMP, I would expect to get ORA-01562 ("failed to extend   rollback segment"), rather than ORA-01555.

  So, I guess I'm confused as to exactly what is happening, and how to fix   it. Can anyone enlighten me?

  • Mike W.
Received on Tue Feb 07 1995 - 22:42:28 CET

Original text of this message