Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> Re: Delayed block cleanout and changing automatic undo tablespace

Re: Delayed block cleanout and changing automatic undo tablespace

From: Jonathan Lewis <>
Date: Tue, 20 Jul 2004 14:50:35 +0100
Message-ID: <00ab01c46e60$8bfdd340$7102a8c0@Primary>

That's very odd.

Since you restarted the database to switch undo tablespaces, any code that attempts to do delayed block cleanout should be able to determine that the startup SCN for the database is an adequate upper bound commit, and therefore not NEED to go back any further.***

The fact that Oracle tries to go back further than necessary is arguably an error - unless someone can think of a reason why it actually IS necessary. It's probably okay to drop the tablespace - but I think I'd only do that after taking a cold backup because if there's one error in this area, there may be other worse errors waiting to happen.


Jonathan Lewis The Co-operative Oracle Users' FAQ Optimising Oracle Seminar - schedule updated July 14th

: Dear All
: Windows 2003 (full patched)/Oracle9.2.0.5 EE
: After a recent migration to 9i where data was copied from the 8i database
: rather than the migration utility used I changed the automatic undo
: tablespace from a large one (coz I was migrating a LOT of data) to a
: one (normal transactions are quite small). The DB was restarted in between
: times to ensure the new UNDO tablesapce became active.
: I want to drop the old large undo tablespace but cannot as when I offlined
: it in preparation I started to get "data file cannot be read at this time"
: errors in the application, where the datafiles in question were associated
: with the old large undo tablesapce. I am pretty sure this is due to
: block cleanout with "rollback" in the old large tablespace still being
: required for this period.
: When using traditional rollback you could offline the rollbacks segments
: I believe this would force a cleanout (from what I have read). I can see
: way of offlining auto undo or forcing a cleanout. AskTom says "it happens
: over time" as the blocks that need cleaning are accessed. I have done FTS
: queries on all tables in the application and will, if I have to, run
: that access all index blocks. However, I need to be sure data in the old
: large undo tablespace is not still needed before I drop it or even risk
: taking it offline again (the application errors were not nice!).
: So eventually the questions:
: - how can I tell if cleanout is still required?
: or how can I tell if undo in the old large tablespace (the tablespaces
: is no longer being actively used by auto undo) is still required (for
: cleanout)
: Or how can I force cleanout aka offlining a rollback segment in 8i
: having to run FTS and index scans on everything)
: DBA_SEGMENTS shows 10 auto undo segments in the old large tablespace which
: may be a clue but there is no info there to help me (they were there
: I ran the FTS queries and are still there now). They have been there for
: some time and show no inclination to go.
: Many thanks in anticipation.

Please see the official ORACLE-L FAQ:

To unsubscribe send email to: put 'unsubscribe' in the subject line.
Archives are at
FAQ is at
Received on Tue Jul 20 2004 - 08:47:43 CDT

Original text of this message