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: ORA-01650, one idea

Re: ORA-01650, one idea

From: Tanel Põder <tanel.poder.003_at_mail.ee>
Date: Wed, 18 Feb 2004 20:37:04 +0200
Message-ID: <059901c3f64e$34f8d2f0$73f823d5@porgand>


Hi!

I think Dan is correct here conceptually, since any record that gets written into undo segment, will always be backed up by redo. How else could Oracle's cache layer, which does the logging, distinguish which blocks or parts of blocks of an undo segment should be logged or not.

When you're doing direct path inserts, then just minimum undo information about transaction start is generated, no undo for block formatting nor filling with rows. And HWM is increased only when commit occurs, not before, so I think even that doesn't require any undo, since we are committing anyway.

Tanel.

> Not true. NOLOGGING, when it applies, can disable undo logging as well
> as redo logging.
>
> Consider though, that it can only be implemented w/ Direct-Path inserts
> (insert /*+ append */ and SQL*Loader) and some DDL operations (index
> rebuilds, etc).
>
> -Mark
>
> Mark J. Bobak
> Oracle DBA
> ProQuest Company
> Ann Arbor, MI
> "Imagination was given to man to compensate him for what he is not, and
> a sense of humor was provided to console him for what he is." --Horace
> Walpole
>
>
> -----Original Message-----
> From: Daniel W. Fink [mailto:Daniel.Fink_at_Sun.COM]=20
> Sent: Tuesday, February 17, 2004 5:29 PM
> To: oracle-l_at_freelists.org
> Subject: Re: ORA-01650, one idea
>
>
> Logging only impacts redo and not undo. Regardless of the logging
> status, you
> still need to be able to rollback the transaction.
>
> Juan Cachito Reyes Pacheco wrote:
>
> > 1)
> > If you set logging off the table and their index (and disable foreing
> keys
> > to this table)?,
> > does it help some or not help.
> >
> > Tell us if this improve your performance in some way.
> > ALTER TABLE GRUPMONCLIE
> >
> > NOLOGGING
> >
> > /
> >
> > ALTER INDEX GRUPMONCLIE REBUILD
> >
> > NOLOGGING
> >
> > / or drop indexes and rebuild them after
> >
> > 2) If your are deleting 99% of the table
> >
> > you coul
> >
> > create table y as select from x;
> >
> > drop x
> >
> > rename y to x;
> >
> > Don't forget the full backup after this and to restore back the
> logging mode
> >
> > ----- Original Message -----
> > From: "Daniel Fink" <Daniel.Fink_at_Sun.COM>
> > To: <oracle-l_at_freelists.org>
> > Sent: Tuesday, February 17, 2004 2:42 PM
> > Subject: Re: ORA-01650
> >
> > Actually, more frequent commits can increase the likelihood of
> > 1650s. When a rollback segment extends beyond optimal, one of the
> > conditions for shrinkage is that two transactions find it over
> > extended and request that it shrink to optimal. Here's a scenario
> > that caused me problems. We scheduled a massive load over a weekend
> > when no one else would be using the system. The load would commit
> > every 100k rows. At the 5th iteration, the load would fail with a
> > 1650. The commit signals a new transaction, so a new rbs was
> > assigned after each commit. Tx1 used RBS1 and extended it. Tx2 used
> > RBS2 and extended it, etc. By the time Tx5 came along, RBS1 - RBS4
> > had extended and consumed almost all the space in the tablespace.
> > When Tx5 needed space, it could not grab any more. It needed to have
> > space released from the other RBSs, but there were not other txs
> > that could find the overextended rbs and request that they shrink.
> >
> > In the case presented, it looks like you have many rbss. This could
> > be the same problem, if there is not enough other activity. Of
> > course, then you risk getting 1555s.
> >
> > It is important to remember that deletes are not just table level,
> > you also have indexes to deal with. If you have enough indexes, you
> > could be generating more index undo that table undo.
> >
> > Quick answer is to increase the size of the rbs tablespace.
> >
> > Daniel
> >
> > Lee Lee wrote:
> >
> > > You could separate your delete into smaller deletes:
> > > Delete 1 million rows, commit, delete another million,
> > > commit, ...
> > >
> > > -----Original Message-----
> > > From: solbeach_at_cox.net [mailto:solbeach_at_cox.net]
> > > Sent: Tuesday, February 17, 2004 10:23 AM
> > > To: oracle-l_at_freelists.org
> > > Subject: ORA-01650
> > >
> > > I need someone to clarify what I am seeing.
> > >
> > > Table contains approximately 6.6 million rows.
> > > Each row is no more than 400 bytes.
> > > Want to delete approximately 5 million rows.
> > >
> > > Getting the following error message:
> > > ORA-1650: unable to extend rollback segment RBS23 by
> > > 1536 in tablespace RBS
> > >
> > > The total size of the RBS tablespace is about 6GB!
> > > I do not understand why the RBS is "too small" to
> > > accommodate this DELETE.
> > > What, if anything, can be done other than adding
> > > another datafile to the tablespace.
> >
> > ----------------------------------------------------------------
> > Please see the official ORACLE-L FAQ: http://www.orafaq.com
> > ----------------------------------------------------------------
> > To unsubscribe send email to: oracle-l-request_at_freelists.org
> > put 'unsubscribe' in the subject line.
> > --
> > Archives are at http://www.freelists.org/archives/oracle-l/
> > FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html
> > -----------------------------------------------------------------
> >
> > ----------------------------------------------------------------
> > Please see the official ORACLE-L FAQ: http://www.orafaq.com
> > ----------------------------------------------------------------
> > To unsubscribe send email to: oracle-l-request_at_freelists.org
> > put 'unsubscribe' in the subject line.
> > --
> > Archives are at http://www.freelists.org/archives/oracle-l/
> > FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html
> > -----------------------------------------------------------------
>
> ----------------------------------------------------------------
> Please see the official ORACLE-L FAQ: http://www.orafaq.com
> ----------------------------------------------------------------
> To unsubscribe send email to: oracle-l-request_at_freelists.org
> put 'unsubscribe' in the subject line.
> --
> Archives are at http://www.freelists.org/archives/oracle-l/
> FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html
> -----------------------------------------------------------------
> ----------------------------------------------------------------
> Please see the official ORACLE-L FAQ: http://www.orafaq.com
> ----------------------------------------------------------------
> To unsubscribe send email to: oracle-l-request_at_freelists.org
> put 'unsubscribe' in the subject line.
> --
> Archives are at http://www.freelists.org/archives/oracle-l/
> FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html
> -----------------------------------------------------------------
>



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

To unsubscribe send email to: oracle-l-request_at_freelists.org put 'unsubscribe' in the subject line.
--
Archives are at http://www.freelists.org/archives/oracle-l/
FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html
-----------------------------------------------------------------
Received on Wed Feb 18 2004 - 12:37:04 CST

Original text of this message

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