Creating rollback segments

I would like to know how to create the perfect rollback segments.
I currently have a database that is up and running, but I feel that the rollback segments, are not running at there best.
I know that the minextents should be set to 20 extents, inital and next are to be the same, but I don't know what the best optimal figure should be.
Looking at the view $waitstat, "undo header" is at a non-zero figure, so this has prompted me to re-configure the rollback segments. Currently the highest HWMSIZE is 45m, and the highest AVEACTIVE is 3m.
Can anyone help?

Hi
ORA-01552: cannot use system rollback segment for non-system tablespace 'string'
Cause: An attempt was made to use the system rollback segment for operations involving non-system tablespace. If this is a clone database then this will happen when attempting any data modification outside of the system tablespace. Only the system rollback segment can be online in a clone database.
Action: Create one or more private/public segment(s), shut down and restart. May need to modify the initialization parameter ROLLBACK_SEGMENTS to acquire private rollback segment. If this is a clone database being used for tablespace point in time recovery then this operation is not allowed.
Hope this helps
-Aditi

Similar Messages

  • Create rollback segment

    Anyone knows why I can not create rollback segment in 9i?? I
    used same script in 8i and it works.
    "create rollback segment lims_rollback tablespace lims_rollback;"
    ERROR at line 1:
    ORA-30019: Illegal rollback Segment operation in Automatic Undo
    mode
    what is automatic Undo mode???

    Automatic undo mode is the default behavior in Oracle 9i where
    Oracle server itself manages creation/sizing etc of rollback
    segments. I believe if you want to do it the old 8i/8/7.x way,
    you need to change some parameter to not use Automatic Undo

  • Creating rollback segments using PUBLIC

    One of our dba's dropped and recreated the 6 rollback segments ( 8i ) but didnt use the PUBLIC option. When the server was rebooted they came up as offline. Another dba did the same but used the PUBLIC option and they are now fine.
    I have looked through the ORacle docs on creating rollback segments and it doesnt seem to say that using the PUBLIC option is essential . I seems to think that u need to do this if using parallel server option.
    So what is the real truth ?
    George

    Private rollback segments need to be defined in init.ora.
    -Antti

  • Can not create Rollback segment

    Hi,
    in 8i on Win 2003
    unfortunately I have dropped rollback tablespace. Now when creating I receive ORA-01552 :
    SQL> CREATE PUBLIC ROLLBACK SEGMENT "RBS1"
      2      TABLESPACE "RBS"
      3      STORAGE ( INITIAL 204k NEXT 10K MINEXTENTS 2 MAXEXTENTS
      4      32);
    CREATE PUBLIC ROLLBACK SEGMENT "RBS1"
    ERROR at line 1:
    ORA-01552: cannot use system rollback segment for non-system tablespace 'RBS'Any solution ?
    Thank you.

    @Satish,
    DRSYS is one of the default tablespaces which used to come with the DBCA ,
    http://download-west.oracle.com/docs/cd/A87860_01/doc/paraserv.817/a76934/chap1.htm#1014437
    @OP,
    Firrst thing is that you shouldn't create any segment , rollback or other in any system alike tablespace like DRSYS. You should create a seperate tablespace in which you should create the segments. As Satish asked already, there shouldn't be any problems as such but only the expectation of 1555 error due to the improper sizing of the rollback segments. But this is just a thought, it would be better if you explain your doubt(s) .
    HTH
    Aman....

  • 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.

  • 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  creation problem

    When i try to create rollback segment on oracle 9iRelease2 database in linux operating system, i got the following error, ORA-30019: Illegal rollback Segment operation in Automatic Undo mode.
    I have already modified Undo_management as manual in init file.
    How can i solve this problem?
    Thanks

    In SQL*Plus, can you check what your undo_management is set to, just to verify that it is picking up the change?
    show parameter undo_managementJustin
    Distributed Database Consulting, Inc.
    www.ddbcinc.com/askDDBC

  • 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

  • Unable to Extend Rollback Segment

    Hi,
    This was the error when I tried to create a table with large amount of data using
    Create Table As Select * From TableName
    Can I handle this error From Pl-Sql
    Since the table is created dynamically
    through Pl-Sql.
    Can I avoid this error by setting following
    parameters in the file init.ora.
    Transactions
    TransactionsPerRollbackSegment
    Regards
    Mrinal
    null

    Dear friend
    Create rollback segment with large
    in size.
    sql> set transaction use rollback segment 'Name of the roll'
    suresh
    null

  • R0 Rollback Segment in Import of 10gR2 into 11gR2 Database

    I have a new install of Oracle Database Server Enterprise Edition 11.2.0.3.6 on AIX 7.1.
    I used the DBCA to create two databases and used export datapump and import datapump to upgrade two 10gR2 database to 11gR2.
    One of the import logs includes the following messages:
    Processing object type DATABASE_EXPORT/ROLLBACK_SEGMENT
    ORA-39083: Object type ROLLBACK_SEGMENT failed to create with error:
    ORA-02221: invalid MAXEXTENTS storage option value
    Failing sql is:
    CREATE ROLLBACK SEGMENT "R0" TABLESPACE "SYSTEM" STORAGE(INITIAL 131072 NEXT 131072 MINEXTENTS 2 MAXEXTENTS 2147483645)
    I verified that the source database has R0 with maxextents of 2147483645.
    I can copy and modify the CREATE ROLLBACK statement and lower the value assigned to MAXEXTENTS, or use MAXEXTENTS UNLIMITED, then run the command in the target database.
    In light of the fact that the DBCA did not create R0 in my two 11gR2 databases, I want to know if I still need to create R0 in the one that showed the error in the import log. Has anyone else noticed the disappearance of R0?
    Here are the rollback segments that exist in the 11gR2 database at this time:
    SQL> Select SEGMENT_NAME, OWNER, TABLESPACE_NAME, INITIAL_EXTENT, NEXT_EXTENT, MIN_EXTENTS, MAX_EXTENTS, PCT_INCREASE, STATUS
    from SYS.DBA_ROLLBACK_SEGS;
    SEGMENT_NAME OWNER TABLESPACE_NAME INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE STATUS
    SYSTEM                         SYS       SYSTEM     114688 57344 1 32765 ONLINE
    _SYSSMU1_3638931391$ PUBLIC UNDOTBS1 131072 65536 2 32765 ONLINE
    _SYSSMU2_3033359625$ PUBLIC UNDOTBS1 131072 65536 2 32765 ONLINE
    _SYSSMU3_2670780772$ PUBLIC UNDOTBS1 131072 65536 2 32765 ONLINE
    _SYSSMU4_286801445$ PUBLIC UNDOTBS1 131072 65536 2 32765 ONLINE
    _SYSSMU5_1738828719$ PUBLIC UNDOTBS1 131072 65536 2 32765 ONLINE
    _SYSSMU6_3548494004$ PUBLIC UNDOTBS1 131072 65536 2 32765 ONLINE
    _SYSSMU7_700714424$ PUBLIC UNDOTBS1 131072 65536 2 32765 ONLINE
    _SYSSMU8_2755301871$ PUBLIC UNDOTBS1 131072 65536 2 32765 ONLINE
    _SYSSMU9_2087597455$ PUBLIC UNDOTBS1 131072 65536 2 32765 ONLINE
    _SYSSMU10_3267518184$ PUBLIC UNDOTBS1 131072 65536 2 32765 ONLINE
    11 rows selected.
    Thanks,
    Bill

    Srini,
    Both the 10gR2 and 11gR2 versions of the database are using automatic undo management.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
    With the Partitioning, OLAP and Data Mining options
    SQL> show parameter undo
    NAME TYPE VALUE
    _undo_autotune boolean TRUE
    undo_management string AUTO
    undo_retention integer 14400
    undo_tablespace string UNDOTBS1
    SQL>
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    SQL> show parameter undo
    NAME TYPE VALUE
    undo_management string AUTO
    undo_retention integer 14400
    undo_tablespace string UNDOTBS1
    SQL>
    Do you know anything about Oracle no longer automatically creating R0 in 11gR2?
    Thanks,
    Bill

  • Error rollback segment - urgent

    hi
    i have created locally managed tablesspace and in init.ora file i have sent unto management as manual as our application needs to specify rollback segments
    when i created rollback segments and attached to a locally managed tablespace i am getting ora-01552 error
    i have also speecified names of rollback segment in init.ora file
    ERROR at line 1:
    ORA-01552: cannot use system rollback segment for non-system tablespace 'ROLLTBLS'
    can i not specify a rollback segment to locally managed tablespace
    regards
    Kedar

    the database is in open mode and the undo_management is set to manual. after i created the locally managed tablespace i ran the script for rollback segment refering to one of the above locally managed tablespace
    what other checks do i have to make for creating rollback segment.

  • Rollback segment in locally manage tablespace

    Is it possible to create rollback segment in
    locally manage tablespace in oracle 8i(8.1.6)
    kuljeet pal singh

    Srini,
    Both the 10gR2 and 11gR2 versions of the database are using automatic undo management.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
    With the Partitioning, OLAP and Data Mining options
    SQL> show parameter undo
    NAME TYPE VALUE
    _undo_autotune boolean TRUE
    undo_management string AUTO
    undo_retention integer 14400
    undo_tablespace string UNDOTBS1
    SQL>
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    SQL> show parameter undo
    NAME TYPE VALUE
    undo_management string AUTO
    undo_retention integer 14400
    undo_tablespace string UNDOTBS1
    SQL>
    Do you know anything about Oracle no longer automatically creating R0 in 11gR2?
    Thanks,
    Bill

  • Transaction taking default rollback segment

    Dear al,
    10.2.0.4. on solaris 10
    transaction taking default rollback segment
    set transaction use rollback segment rbs2;
    structure of rbs2:
    Create rollback segment rbs2 tablespace tempt storage (initial 1M next 1M minextents 2 maxextents 1024);
    alter ROLLBACK SEGMENT RBS2 STORAGE
    (MINEXTENTS 20
    MAXEXTENTS UNLIMITED );
    set transaction use rollback segment rbs2;
    when am running the query , am getting the below error :
    ERROR at line 3:
    ORA-01555: snapshot too old: rollback segment number 8 with name "_SYSSMU8$"
    too small
    why still the transaction is referring to system rollback segment "_SYSSMU8$" where I've explicitly set the rollback segment for the transactiom ?
    ANy idea ?
    KAI

    Thanks robert and
    Now, after setting
    undo_retention integer
    2700
    It failed with the below and now it took 20 minutes..
    ERROR at line 4:
    ORA-01555: snapshot too old: rollback segment number 9 with name "_SYSSMU9$"
    too small
    ORA-02063: preceding line from TABS2CALLS
    Elapsed: 00:20:11.40
    Please advise
    Kai

  • TRANSACTION을 ROLLBACK SEGMENT에 할당하는 방법(SET TRANSACTION USE)

    제품 : ORACLE SERVER
    작성날짜 : 2003-04-04
    TRANSACTION을 ROLLBACK SEGMENT에 할당하는 방법
    ==============================================
    (SET TRANSACTION USE ROLLBACK SEGMENT)
    Purpose
    Batch job 등을 사용할 때 특별히 크게 만든 rollback segment를 사용하도록
    할 수가 있다. transaction에 특정한 rbs를 지정하는 방법을 알아보자.
    Explanation
    Oracle은 다음과 같은 규칙에 의해 각 Transaction이 사용하는 Rollback
    segment를 결정한다.
    1. Active Transaction의 수가 가장 작은 Rollback Segment에 할당한다.
    2. 만약 1의 조건에 만족하는 Rollback segment가 하나 이상이면, 가장
    마지막에 할당된 rbs 다음의 rbs를 할당한다. 이것은 undo 기능을 더
    오래 지속시키도록 해 준다.
    그러나, Application이 큰 rollback segment가 필요하다면 위와 같이
    자동적인 rollback segment의 할당이 아닌 Manual하게 특정 rollback
    segment를 할당 가능하다.
    다음의 방법을 사용한다.
    1) 큰 rollback segment를 만든다. 큰 rollback segment 를 만들기
    위해서는 rbs tablespace에 영역이 충분히 커야 하므로 필요할 경우
    tablespace를 확장하는 작업을 한다.
    <tablespace 확장>
    $ sqlplus system/manager
    sql> alter tablespace rbs add datafile '?/rbs1SID.dbf' size 100m;
    <rollback segment 생성>
    sql> create rollback segment big_rbs storage(initial 10m next 10m)
    tablespace rbs;
    sql> alter rollback segment big_rbs online;
    2) Transaction 를 assign 한다.
    <sqlplus>
    SQL> set transaction use rollback segment big_rbs;
    <pro*c>
    exec sql commit work;
    exec sql set transaction use rollback segment big_rbs;
    <forms>
    dbms_transaction.use_rollback_segment('big_rbs');
    이와 같이 지정하면 이후에 commit 또는 rollback이 일어날 때까지
    한 transaction에만 해당된다.

  • Oracle9i How to convert from undo tables to rollback segments

    Hi,
    Anyone try before converting from UNDO management to using rollback segment....What are the procedures for the conversion...
    Thank You...

    Hi,
    Follow these steps to convert from Auto UNDO to Rollback Segs....
    1. With the database opened, create a rollback tablespace and then create some rollback segments and bring them online like this
    CREATE ROLLBACK SEGMENT RBS1 TABLESPACE RBS;
    ALTER ROLLBACK SEGMENT RBS1 ONLINE;
    2. Then edit the PFILE and modify these parameters
    Add: ROLLBACK_SEGMENTS=(RBS1,RBS2,RBS3....)
    Comment: UNDO_MANAGEMENT=AUTO and UNDO_TABLESPACE=UNDOTBS or whatever name you have for your UNDO tablespace.
    3. Shutdown the database gracefully(normal).
    4. Startup pfile=<Pfile path>
    5. Sync these new parameter changes to the SPFILE by recreating the SPFILE.
    6. Take a full level 0 backup of your database as the structure has changed.
    The next time you start the database, it will use the SPFILE which is same as the PFILE.
    Regards.

Maybe you are looking for