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: Bobak, Mark <Mark.Bobak_at_il.proquest.com>
Date: Wed, 18 Feb 2004 14:16:40 -0500
Message-ID: <4C9B6FDA0B06FE4DAF5918BBF0AD82CFECFC1E@bosmail00.bos.il.pqe>


Perhaps I misunderstood. My point was that when you do valid NOLOGGING = operations, no redo OR undo will be logged for the blocks being loaded. = The only redo/undo logging which will take place is the extent = invalidation records and any data dictionary updates. The extent = invalidation records are required to mark the loaded blocks as corrupted = in case recovery takes place, and the data dictionary updates are = required in case the transaction rolls back.

-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: Tanel P=F5der [mailto:tanel.poder.003_at_mail.ee]=20 Sent: Wednesday, February 18, 2004 1:37 PM To: oracle-l_at_freelists.org
Subject: Re: ORA-01650, one idea

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]=3D20
> 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
-----------------------------------------------------------------
----------------------------------------------------------------
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 - 13:16:40 CST

Original text of this message

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