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

Re: ORA-01650

From: Daniel Fink <Daniel.Fink_at_Sun.COM>
Date: Tue, 17 Feb 2004 11:42:16 -0700
Message-id: <40326088.D5F945AA@sun.com>


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
-----------------------------------------------------------------
Received on Tue Feb 17 2004 - 12:42:16 CST

Original text of this message

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