Increase the RollBack Segment

Guys,
Hope you all doing well.
My question is about the undotable space.
I am using oralce 9ir2 on Windows Plateform. The tablespace was auto created at database creation. The tablespace is in Auto undo Management mode. The Undotablespace has 10 Rollback segments. I want to increase the Rollback segments in the tablespace. How could i increase the rollback segments??
Please help.
Thanks
Y.Vo.

when I asked how to get the rollback segment count, I actually asked how would you get the rollback segments in undo tablespace. Because you dont have rollback segments in undo tablespace. You can either have rollback segments or undo tablespace. If you start your database in UNDO mode then you will have undo tablespace or in ROLLBACK mode you will have roll back segments. Both cannot be in the same place.
what version u are using? . In 10g you dont have rollback segment if you set UNDO_MANAGEMENT to auto. You will have only undotablespace.
1) In undotablespace the extents will automatically grow according to the sum of the data files for that tablespace.
2) If it reaches a maximum and if you have auto_extent in any one of the file then you dont have to manually increase the size i.e you dont have to manually increase the segments.
3) Also if you dont have the auto_extent in any file then the space will be reused. i.e you start to loose the old undo data.
4) The maximum data it can hold depends on UNDO_RETENTION period and the space available in the undo tablespace.
Hope this helps.

Similar Messages

  • When to backup the rollback segments?

    Does anyone know when do I need to backup the rollback segments and what for? How are they used during restore/recovery?
    I'm using RMAN in Oracle 9.2. We have databases with both manual and automatic undo management. Does the undo management type make any difference?
    Thanks,
    Niki

    Does anyone know when do I need to backup the rollback segments and what for? How are they used during restore/recovery?
    Your question is a little large to answer but I am going to summary the most important.
    The database works with transactions in commit and in not commit mode. While a transaction has not commit , this transaction has not finished. While the transaction has not finished the rollback segments or undo segments are used to store the image of blocks with changes and without changes. That is the method that Oracle uses to ensure that a block is not going to be modified definitevely until the transaction gets commit.
    When you have a point of failure you are going to have transactions with commit and transactions with no commit and that tablespace ( RBS or UNDO ) is needed to carry to the database to a consistent point carrying to disk all transactions with commit and the rest have to suffer a rollback operation. That means that those operations without commit are not going to be complete transactions for the database.
    When you want to recover a database all tablespaces are need excepting the temp tablespace because that tablespace is only needed to carry out sorts and operation likeness.
    Does the undo management type make any difference?
    if you use rollback segments you have to administer them and the management instead if you work with undo tablespace. If you work with undo tablespace it by itself manage its segments you do not have to worry about.
    I think that I have answered your questions if you have any doubt or something like that feel free to follow asking.
    Good Luck!
    Joel P�rez

  • The OPTIMAL storage parameter in the rollback segment

    Hi,
    in metalink note Subject: ORA-01555 "Snapshot too old" in Very Large Databases (if using Rollback Segments)
    Doc ID: 45895.1
    I see :
    Solution 1d:
        Don't use the OPTIMAL storage parameter in the rollback segment. but how not to use the OPTIMAL storage parameter in the rollback segment ?
    Thank you.

    If you are using undo_management=AUTO (in 9i or higher) then there is no "OPTIMAL" setting.
    "OPTIMAL" is when using Manual Undo Management with Rollback Segments created by the DBA.
    If you are using Manual Undo Management, check your Rollback Segments. The Optimal size would be visible in V$ROLLSTAT.
    select a.segment_name a,  b.xacts b, b.waits c, b.shrinks e, b.wraps f,
          b.extends g, b.rssize/1024/1024 h, b.optsize/1024/1024 i,
          b.hwmsize/1024/1024 j, b.aveactive/1024/1024 k , b.status l
    -- from v$rollname a, v$rollstat b
    from dba_rollback_segs a, v$rollstat b
    where a.segment_id = b.usn(+)
    and b.status  in ('ONLINE', 'PENDING OFFLINE','FULL')
    order by a.segment_name
    /To unset the Optimal setting you can run
    alter rollback segment SEGMENT_NAME storage (optimal NULL);Note that if you unset OPTIMAL, then your Rollback Segments will remain at very large sizes if and when they grow running large transactions ("OPTIMAL" is the pre-9i method for Oracle to automatically shrink Rollback Segments). You can manually SHRINK or DROP and CREATE Rollback Segments then.

  • Error while creating the rollback segment (Oracle 8i & OS Win NT)

    hi
    I am using Oracle 8i and when i am creating the new rollback segment for my database i have got following error message
    ORA-01593 Rollback segment optimal size (30 blks) is smaller than the computed initial size (2560 blks)
    CREATE ROLLBACK SEGMENT "RBS11" TABLESPACE "RBS1"
    STORAGE ( INITIAL 120K NEXT
    120K OPTIMAL
    240K MINEXTENTS 2
    MAXEXTENTS 100)
    Note:- db_block size is 8k
    Tablespace RBS1 is the Locally managed Tablespace having datafile of 50m and uniform size of 10m
    But Given statement processed while i am using Tablespace RBS (winch is data dictionary managed)
    Plz, suggest me to cause of that error and solution

    You said 120K optimal and initial is 120K with minextents of 2. The optimal size then will be smaller than the initial allocation for the rbs.
    ORA-01593: rollback segment optimal size (string blks) is smaller than the computed initial size (string blks)
    Cause: Specified OPTIMAL size is smaller than the cumulative size of the initial extents during create rollback segment.
    Action: Specify a larger OPTIMAL size.

  • How to extend rollback segment

    Hi,
    for a few days I've been getting the following messages:
    ORA-01562: failed to extend rollback segment number 3
    ORA-01650: unable to extend rollback segment RBS2 by 512 in tablespace RBS
    after running a package which has always had no problems and where it's also been added a COMMIT after the insert statements inside the package.
    DBAs have tried to increase the rollback segment but the problem is always the same.
    Have you got some advice?
    Thanks!

    By adding a datafile in RBS tablespace.

  • How to increase rollback segment

    hi,
    I am using oracle8i in solaris
    I got a situation to increase rollback segment but i dont know how to do so?
    can any one help me in solving this..........
    I also want to know wat is the maximum max_extents size we can keep.....
    This is my rollback segments
    SQL> select segment_name, max_extents,TABLESPACE_NAME FROM dba_rollback_segs;
    SEGMENT_NAME MAX_EXTENTS TABLESPACE_NAME
    SYSTEM 121 SYSTEM
    RBS 121 SYSTEM
    RBS1 121 RBS
    RBS2 121 RBS
    RBS3 121 RBS
    RBS4 121 RBS
    RBS99 32765 RBS1
    7 rows selected.
    With Regards
    Boo

    If you have metalink access, there are really couple of good notes on how to tune and create optimal rollback segments.
    Rollback Segment Configuration Tips Doc ID:      Note:69464.1
    Regarding the size of the rollback segment, it is depends on the nature of the application and the transaction size, whether short transaction or lenghty transactions.
    If oltp with very small transaction, create rollback segment with very small value and make minextents 20, so that you dont need to have recursive call to create extents initially.
    ORA-01628: max # extents (121) reached for rollback segment RBS1Make the extent unlimited.
    ALTER ROLLBACK SEGMENT RBS1
    STORAGE ( MAXEXTENTS UNLIMITED)
    2) how many rollback segment can we hav?1 rollback segment = 4 concurrent transactions.
    Now you decide, how many concurrent transaction do you have.
    .3) what is the maximum extent size we can set?I would recommend to set the extent size according to nature of your application.
    <<1) if there is more than one rollback segment in that, i want to know which one is active how to know this....... where to check this.........
    SELECT r.name "RB NAME ", p.pid "ORACLE PID",
    p.spid "SYSTEM PID ", NVL (p.username, 'NO TRANSACTION') "OS USER",
    p.terminal
    FROM v$lock l, v$process p, v$rollname r, v$session s
    WHERE l.sid = s.sid(+)
    AND s.paddr = p.addr
    AND TRUNC (l.id1(+)/65536) = r.usn
    AND l.type(+) = 'TX'
    AND l.lmode(+) = 6
    ORDER BY r.name;
    Jaffar

  • Rollback segment is filling up during creation of the database

    Hi
    The Rollback segment is showing around 520mb immediately after
    creation of the database after following the wizard provided in
    the enterprise manager of oracle. What might be the reason. How
    to reduce it. Could any one give me a solution for this matter.
    Thanks in Advance.

    I tried creating the password file using the following command:
    orapwd file=/home/oracle/product/9.2.0/dbs/orapwHR.ora
    password=HR entries=5
    and got the same error:
    ORA-01501 Create Database failed.
    ORA-01990 -ERROR opening password file '/home/oracle/product/9.2.0/dbs/orapw'
    ORA-27037 Unable to obtain file status.
    Linux error: 2: No such file or directory.
    Additional information: 3.
    Does anybody know how to fix this problem?
    Thanks,
    Katya

  • How to get the size of rollback segments

    Hi,
    on which oracle table can I see which are the rollback segments and its own size?
    Thanks!

    doc questions like this one are best answered by querying the view DICT which is present in every release of Oracle (and which you of course -again- fail to mention)
    Sybrand Bakker
    Senior Oracle DBA

  • What is the table for active rollback segments

    Hi,
    Can anyone please let me know what is the table name for 'Active Rollback Segments', is it dba_rollback_segs?
    Regards,
    - Sri

    Yes, this is the view which will report you the rollback segment name, owner and other information about the rollback segments.
    You can also query dba_undo_extents view.

  • Urgent: Error ORA-01555 "snapshot too old rollback segment too small"

    I get this error when I do a "SELECT" on a few very large tables for a report. Isn't there a way out? Our DBA says our rollback segment size cannot be increased anymore. All I care of is the SELECT statement to finish executing. It is okay for me to have some inconsistency in the data (dirty reads). What is the easiest way to solve this problem? I CANNOT breakup the SELECT statement into multiple statements.
    Thanks in advance

    Oracle cannot be configured to give you dirty reads.
    Setting your transaction to be READ ONLY probably won't help too much-- the problem here is that when you go to SELECT a particular row, Oracle discovers that the value in the row has changed since the start of your query and the old value is not present in the rollback segments.
    How are your rollback segments configured? Perhaps you don't need to allocate additional space to them-- perhaps you can simply increase their OPTIMAL size.
    What version of Oracle are you on? If you are on 9i or above, I would strongly consider moving to automatic UNDO management, which vastly simplifies rollback (undo) administration.
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • Rollback segments - database logging

    Got a problem...
    We are trying to move data from one database to another using: INSERT INTO table1 (SELECT a,b,c FROM table2@db2). The problem we are having is that the amount of data being moved with this in sert command is too great - we are getting an error indicating that our rollback segment is not large enough - ORA-01562: failed to extend rollback segment number 4.
    Unfortunately, we are not going to be able to increase the size of the rollback segment any further than we already have. Is there a way to disable the database logging that occurs?
    I tried using INSERT INTO table1 dbms_disable_logging (SELECT a,b,c FROM table2@db2), but noticed no difference - same error.
    Any ideas?
    Thank you,
    Dan

    We use select..into all the time in an unlogged mode for speed and rollback space reasons.
    We replicate fifty million row tables with a minimal amount of rollback segment (<50MB).
    In unlogged mode we can replicate 50 million rows in under forty minutes - that's smokin!
    Oracle version 8 or greater introduced this concept. I am running 8.1.6.
    You need to alter the table to disable logging and then perform the select into.
    The table alter only takes seconds.
    ALTER TABLE IDMDBO.DIM_PLANS NOLOGGING
    Then do the select into and then turn logging back on (if so desired).
    You can also disable logging at the table space level.
    Keep in mind there are only a few database operations that can be performed unlogged and select..into is one of them.
    There is currently no way to carte blanche disable transaction logging - hopefully this will be coming soon!
    Cheers.
    - Brendan Sullivan
    null

  • ORA-01562: failed to extend rollback segment

    HI
    I was searching the forum for an error when i came across one of the old post regarding the same issue. The link for that post is:
    perfomance problem
    Actually i am getting an error when i run a procedure in Oracle 8i database. Error states:
    ORA-01562: failed to extend rollback segment number.....
    Now in the link i mentioned above there was a reply by JES. In the reply he recommend not to use commit after every delete in the loop. Instead use one commit after the loop. This decreased the number of commits from 175000 (5 * 35000) to 1.
    My questions is
    1) How would it reduce the number of comments?
    Can anyone explain to this point.

    sorry it should be commit rather than 'comment'
    Okay hoek i got the point but i m still confused. What my knowledge regarding rollback segment is that whenever we start a transaction using any DML a rollback segment starts to maintain unless we end the transaction using commit or rollback. So doing as
    LOOP
    DELETE.......
    DELETE......
    DELETE......
    END LOOP
    COMMIT
    will keep on increasing the size of the rollback segment. In other words rollback segment will have to keep the snapshot of all the three DML's in the loop till the commit.
    Instead if we do as
    LOOP
    DELETE.......
    COMMIT
    DELETE......
    COMMIT
    DELETE......
    COMMIT
    END LOOP
    will keep the size of the rollback segment less than the above example because we are commiting after every DML thus releasing the space before the start of the next DML.
    Don't you think the later can prevent us from ORA-01562 ?

  • Trying to understand rollback segments - offline tblspaces for backup

    Using Oracle 8i, on Windows platform - The question - receive an error ORA-01556 when performing a
    sql "ALTER TABLESPACE MY_TBS_LT OFFLINE IMMEDIATE";
    =============================================
    First off I created a tablespace and table on an 8i database.
    create tablespace my_tbs_lt_tbs_lt
    datafile '&&2\oradata\&&1\my_tbs_lt_guitest1.dbf'
    size 10M
    AUTOEXTEND ON NEXT 1280k EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K; <===== Is this right for use with rollback segments?
    CREATE ROLLBACK SEGMENT rbgui1t2 STORAGE(INITIAL 50K NEXT 250K)
    tablespace my_tbs_lt;
    CREATE ROLLBACK SEGMENT rbgui2t2 STORAGE(INITIAL 50K NEXT 250K)
    tablespace my_tbs_lt;
    CREATE ROLLBACK SEGMENT rbgui3t2 STORAGE(INITIAL 50K NEXT 250K)
    tablespace my_tbs_lt;
    CREATE ROLLBACK SEGMENT rbgui4t2 STORAGE(INITIAL 50K NEXT 250K)
    tablespace my_tbs_lt;
    -- Bring new rollback segments online
    ALTER ROLLBACK SEGMENT rbgui1t2 ONLINE;
    ALTER ROLLBACK SEGMENT rbgui2t2 ONLINE;
    ALTER ROLLBACK SEGMENT rbgui3t2 ONLINE;
    ALTER ROLLBACK SEGMENT rbgui4t2 ONLINE;
    CREATE TABLE guitester.guitester_t2
    ( employee_id NUMBER(6)
    , first_name VARCHAR2(20)
    , last_name VARCHAR2(25)
    CONSTRAINT emp_last_name_nn_demo NOT NULL
    , email VARCHAR2(25)
    CONSTRAINT emp_email_nn_demo NOT NULL
    , phone_number VARCHAR2(20)
    , hire_date DATE DEFAULT SYSDATE
    CONSTRAINT emp_hire_date_nn_demo NOT NULL
    , job_id VARCHAR2(10)
    CONSTRAINT emp_job_nn_demo NOT NULL
    , salary NUMBER(8,2)
    CONSTRAINT emp_salary_nn_demo NOT NULL
    , commission_pct NUMBER(2,2)
    , manager_id NUMBER(6)
    , department_id NUMBER(4)
    , dn VARCHAR2(300)
    , CONSTRAINT emp_salary_min_demo
    CHECK (salary > 0)
    tablespace my_tbs_lt;
    =======================================
    I changed the initSID.ora file to have
    Rollback_segments=( rbgui1t2, rbgui2t2, rbgui3t2, rbgui4t2)
    =======================================
    restarted everything
    ========================================
    did a backup of the tablespace my_tbs_lt;
    ========================================
    added some data to the table in the tablespace
    ========================================
    ran a restore/recover - Get the error
    ========================================
    It makes sense that I get the error because it is the tablespace that I have been working with, adding data. Is my logic correct? How does one restore a tablespace if it has rollback segments active? Can someone look to make sure I am declaring the rollback segments appropriately?

    Thank you for the link - very helpful.
    So would a more appropriate scheme be:
    Create a tablespace
    Create rollback segments
    Put them online
    enter their names in the ROLLBACK_SEGMENTS= segment(s)
    I havent read everything, so you may say go look at the link again, but a second question. If you are managing the extent locally, does it not use a rollback segments, or is it using system, or is it actually creating rollback segments for itself within the context of the local management?
    In my above scenario, I would have to take my rollback segment offline as well as the tablespace.

  • Rollback segment problem

    Hello:
    I'm using oracle 8 database and I have a process that generates small transactions (and they're really small), usually this process is executed from 2 or 3 different workstations at the same time, but they don't use the same data sets. The frequency of execution of the small transaction is 10 or 12 a second for each workstation. Each time the process is executed I can count near 6000 transactions, and I always have 2 o 3 of them arising "ORA-01562: failed to extend rollback segment number n" error. Since the transaction uses a small space of the rollback segment I can't find an explanation to this behavior. Is this related to the time between transaction and the freeing of the unused rollback segment ? I would really appreciate if somebody could help me!!!
    Thanks in advance, Javier Petrozzi

    It appears to me that some of the transactions remain open for quite some time and the new transactions are not able to obtain an extent for the rollback segment.
    The following query gives some useful information.
      1  select s.sid, s.username, r.name "SEGMENT NAME"
      2  from v$session s, v$transaction t, v$rollname r
      3  where s.taddr=t.addr
      4* and  t.xidusn = r.usn
    SQL> /
           SID USERNAME                       SEGMENT NAME
            16 SCOTT                            _SYSSMU7$You may have to commit your changes sooner.

  • Big problem with ROLLBACK SEGMENT

    I tried insert into DB Oracle 8i more than 23000 rows from .sql files.
    This files contents:
    -- START
    delete from grls;
    insert ..........
    insert ..........
    insert ..........
    -- END
    ORA-01562: failed to extend rollback segment ...
    My configuration:
    CREATE TABLESPACE rbs datafile '$ORACLE_BASE/oradata1/$ORACLE_SID/rbs01.dbf' SIZE 10M;
    CREATE TABLESPACE rbs_02 datafile '$ORACLE_BASE/oradata1/$ORACLE_SID/rbs01_02.dbf' SIZE 300M;
    CREATE ROLLBACK SEGMENT rbs01 storage (initial 20k next 20k minextents 3 maxextents 121) TABLESPACE rbs;
    CREATE ROLLBACK SEGMENT rbs16 storage (initial 20k next 20k minextents 3 maxextents 121) TABLESPACE rbs;
    CREATE ROLLBACK SEGMENT rbs_load01 storage (initial 30m next 30m minextents 3 maxextents 10) TABLESPACE rbs_02;
    Please help me.

    1.)Did you place the rollback segments online
    after creation?
    Alter rollback segment RBS01 online;
    Alter rollback segment RBS16 online;
    Alter rollback segment RBS_LOAD01 online;
    2.)Did you set your init[sid].ora parameter
    ROLLBACK_SEGMENTS = (RBS01, RBS16, RBS_LOAD01) so that they will automatically come on line on istance startup?
    3.) You have set up only 304Meg of space for them cumulatively. Is this enough for the 23thousand rows you want to insert?
    If not you may want to enable the autoextend option on your datafiles. Of course you will want to change your maxextents. Leaving that value out will give you a default of 505 maxextents.
    4.) And finally you could throw in a commit during the insert procedure. This will commit the transaction at that point and clear out the rollback segments for use again.
    Tom

Maybe you are looking for