Question abt rollback segments

hi all,
I have some doubts on oracle internal architecture. When DML statements are run, the old datablocks are written to rollback segments. But it first happens in SGA and later they will be written to the file by dbwr. Any idea when they will be written? i.e., before commit or after?
Regards
Suresh

This has been running through my head all morning and I did some more tests. For the same demo I get this output:
7624441972          20060419 165120          INSERT     insert into "SYS"."TAB$"("OBJ#","DATAOBJ#","TS#","FILE#","BLOCK#","BOBJ#","TAB#","COLS","CLUCOLS","PCTFREE$","PCTUSED$","INITRANS","MAXTRANS","FLAGS","AUDIT$","ROWCNT","BLKCNT","EMPCNT","AVGSPC","CHNCNT","AVGRLN","AVGSPC_FLB","FLBCNT","ANALYZETIME","SAMPLESIZE","DEGREE","INSTANCES","INTCOLS","KERNELCOLS","PROPERTY","TRIGFLAG","SPARE1","SPARE2","SPARE3","SPARE4","SPARE5","SPARE6") values ('1247473','1247473','5','3','13198',NULL,NULL,'1',NULL,'10','40','1','255','1','--------------------------------',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'1','1','536870912','0','736',NULL,NULL,NULL,NULL,TO_DATE('19/04/06', 'DD/MM/RR'));     
7624441972          20060419 165120          INSERT     insert into "SYS"."COL$"("OBJ#","COL#","SEGCOL#","SEGCOLLENGTH","OFFSET","NAME","TYPE#","LENGTH","FIXEDSTORAGE","PRECISION#","SCALE","NULL$","DEFLENGTH","SPARE6","INTCOL#","PROPERTY","CHARSETID","CHARSETFORM","SPARE1","SPARE2","SPARE3") values ('1247473','1','1','22','0','A','2','22','0',NULL,NULL,'0',NULL,NULL,'1','0','0','0','0','0','0');     
7624441972          20060419 165120          INTERNAL          
7624441972          20060419 165120          INTERNAL          
7624441972          20060419 165120          INTERNAL          
7624441972          20060419 165120          DDL     create table T
a number
7624441973          20060419 165120          UPDATE     update "SYS"."SEG$" set "TYPE#" = '5', "BLOCKS" = '64', "EXTENTS" = '1', "INIEXTS" = '64', "MINEXTS" = '1', "MAXEXTS" = '2147483645', "EXTSIZE" = '64', "EXTPCT" = '0', "USER#" = '44', "LISTS" = '0', "GROUPS" = '0', "CACHEHINT" = '0', "HWMINCR" = '1247473', "SPARE1" = '131329' where "TS#" = '5' and "FILE#" = '3' and "BLOCK#" = '13198' and "TYPE#" = '3' and "BLOCKS" = '64' and "EXTENTS" = '1' and "INIEXTS" = '64' and "MINEXTS" = '1' and "MAXEXTS" = '2147483645' and "EXTSIZE" = '64' and "EXTPCT" = '0' and "USER#" = '44' and "LISTS" = '0' and "GROUPS" = '0' and "BITMAPRANGES" = '0' and "CACHEHINT" = '0' and "SCANHINT" = '0' and "HWMINCR" = '1247473' and "SPARE1" = '131329' and "SPARE2" IS NULL and ROWID = 'AAAAAIAABAAADxHAAY';     
7624441975     7624441975     20060419 165120     20060419 165120     COMMIT     commit;     
7624441977          20060419 165127          START     set transaction read write;     
7624441977          20060419 165127          INSERT     insert into "YJAM"."T"("A") values ('1');     
7624441979          20060419 165133          INSERT     insert into "YJAM"."T"("A") values ('2');     
7624442016     7624442016     20060419 165322     20060419 165322     COMMIT     commit;     
7624442021          20060419 165334          START     set transaction read write;     
7624442021          20060419 165334          INSERT     insert into "YJAM"."T"("A") values ('3');     
7624442025     7624442025     20060419 165341     20060419 165341     COMMIT     commit;     (I don't know if the formatting will be OK since it's a SQL Developer copy/pase and I don't have a clear formatted output there anyway)
Field 2 is the "CSCN" which I think is the Commit SCN, since it appears only on commit.
So now, I can only agree with you Mark, that the transaction SCN is actually defined when the transaction ends. But I still think that for transaction read concistency, the SCN used through the ransaction is the one of the transaction start (START - set transaction read write).
Regards,
Yoann.

Similar Messages

  • 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

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

  • Pb with rollback segment

    Hi guys.
    Am using oracle 8i and am having problems with rollbackup segment. My rbs tablespace is 35GB and will like to shrink it! Its a production db, so my question is shoudl I fire the below query?
    alter rollback segment SYSTEM shrink;
    alter rollback segment RBS__BIG shrink;
    alter rollback segment RBS01 shrink;
    alter rollback segment RBS02 shrink;
    alter rollback segment RBS03 shrink;
    alter rollback segment RBS04 shrink;
    alter rollback segment RBS05 shrink;
    alter rollback segment RBS06 shrink;
    Is there any downside? Please advice.
    Thanks.

    Hi Friend,
    Production DBs are always having big transactions, These transactions obviously hold large memory in rollback segments. You will not face any issue after srinking it but if any transaction is failed and it has not been enrolled or flush out from your rollback segment. You will be not able to recover the data from rollback segment. I would suggest use share table space here instead of shrinking it. Atleast it will help to to recover current transaction in case of calamity.
    Thanks,
    Nitin joshi

  • Materialized view refresh and rollback segment

    Hi all,
    maybe this is a dumb question but:
    We use a few materialized views (partitioned, on prebult tables) in our DB.
    The refresh method used is complete.
    Every refresh clears old data et the very beginning and leaves the table empty until new data is commited (can take up to 2 hrs). But what is use of specifying the rollback segment than?
    I would like to change this behaviour to keep the old data to the very moment of replacing with new one.
    Is there a way?
    Thanks a lot
    Petr

    Hi all,
    maybe this is a dumb question but:
    We use a few materialized views (partitioned, on prebult tables) in our DB.
    The refresh method used is complete.
    Every refresh clears old data et the very beginning and leaves the table empty until new data is commited (can take up to 2 hrs). But what is use of specifying the rollback segment than?
    I would like to change this behaviour to keep the old data to the very moment of replacing with new one.
    Is there a way?
    Thanks a lot
    Petr Oracle will truncate the MV and then effectively insert as select to populate your MV. In doing so
    Oracle needs to keep a read consistent view of the select it is executing. Here clearly you might consider specifying a specific rbs.
    Have you considered fast refresh or is this not a candidate? At least with fast refresh you won't have to compeletly rebuild the mv each time and it will be considerably faster.
    steve

  • OPTIMAL size for rollback segment in Oracle 8i

    In our Database we have 13 Rollback segments & total size of all rollback segments is 33gb.
    Used % it is showing 99.84%.
    each rollback segment having near around 4gb of size.
    I am in confusion to set OPTIMAL value for each rollback
    segment.
    can any one help me out reg this.
    My roll back seg statistics are as fallows:
    SEGMENT_NAME TABLESPACE_NAME WAITS SHRINKS WRAPS STATUS
    R00 SYSTEM 0 0 12 ONLINE
    RBS0 RBS 0 0 19 ONLINE
    RBS01 RBS 0 0 16 ONLINE
    RBS02 RBS 1 0 12 ONLINE
    RBS03 RBS 0 0 11 ONLINE
    RBS04 RBS 0 0 21 ONLINE
    RBS05 RBS 1 0 22 ONLINE
    RBS06 RBS 0 0 16 ONLINE
    RBS07 RBS 0 0 15 ONLINE
    RBS08 RBS 0 0 12 ONLINE
    RBS09 RBS 1 0 19 ONLINE
    SEGMENT_NAME TABLESPACE_NAME WAITS SHRINKS WRAPS STATUS
    RBS12 RBS 0 0 13 ONLINE
    RBS13 RBS 0 0 18 ONLINE
    SYSTEM SYSTEM 0 0 0 ONLINE

    Aman,
    Definitely that would be a great approach to share the knowledge; but right now my notes are still in the shape of notes only; i have'nt tested them. I simply read forum and asktom and whenever i found good lines i copy and paste them and whenever i found the similar question in the forum i paste / repharase there in my own language and understanding (because till then i have tested and learnt them very well.)
    Although i am highly obliged by your suggestation; let me that much knowledgable; so that i may run my own blog...!
    Regards
    Girish Sharma

  • ORA-01545: rollback segment 'R01' specified not available, after disk crash

    After a disk problem, when I try to open the database I receive the error 0ra-01545.What can I do resolve this? It seems that the rollback segment is marked for recover. I an only mount the database.

    This is the forms forum. If you ask your question the the database forum you may get an answer much quicker.

  • Rollback Segment: dedicate it to a given session ?

    Dear Experts,
    A job is performing nightly deletion on some data.
    I created a "big" RBS for it and perform the following:
    SET TRANSACTION USE ROLLBACK SEGMENT RBS01;
    DELETE FROM TABLE1 WHERE (...);
    COMMIT;
    Is it possible that only this transaction uses RBS01 i.e. having RBS01 dedicated to my transaction untill the COMMIT is done ?
    Thanks for any advice.
    Best Regards,
    Guillaume.

    I've got a complementary question.
    As I don't want the clean-up job to "eat" all my CPU I'd need to limit the CPU allocated to this task. I can see in Profile a CPU_PER_SESSION parameter but I'm looking for a way to set a max % of the CPU usage and not a max in duration. Any trick ?
    Thanks for your support.
    BR,
    Guillau

  • 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

  • ROLLBACK SEGMENTS OPERATION

    Hello Everyone
    This is the first time I am a forum member and I'm figuring out how it works because I have a very big problem
    Look, I'm a support engineer and, as you know, the code of the application is not own by me.
    Three weeks ago I received a report which is related with the Rollback operation.
    There's a process which delete old data from my database and, normally, this process has three parts, as shown in the alert_dbinstance.log:
    Wed May 17 03:00:08 2000
    alter ROLLBACK SEGMENT CLEANUP_RS0 ONLINE
    Wed May 17 03:00:08 2000
    Completed: alter ROLLBACK SEGMENT CLEANUP_RS0 ONLINE
    Wed May 17 04:52:25 2000
    alter ROLLBACK SEGMENT CLEANUP_RS0 SHRINK
    Wed May 17 04:52:26 2000
    Completed: alter ROLLBACK SEGMENT CLEANUP_RS0 SHRINK
    Wed May 17 04:52:26 2000
    alter ROLLBACK SEGMENT CLEANUP_RS0 OFFLINE
    Completed: alter ROLLBACK SEGMENT CLEANUP_RS0 OFFLINE
    But, one day, the server crashed and this process didn't finish:
    Sat May 20 03:00:03 2000
    alter ROLLBACK SEGMENT CLEANUP_RS0 ONLINE
    Sat May 20 03:00:03 2000
    Completed: alter ROLLBACK SEGMENT CLEANUP_RS0 ONLINE
    Sat May 20 04:39:09 2000
    the next messages about this process are these:
    Sun May 21 03:00:04 2000
    alter ROLLBACK SEGMENT CLEANUP_RS0 ONLINE
    Sun May 21 03:00:04 2000
    ORA-1636 signalled during: alter ROLLBACK SEGMENT CLEANUP_RS0 ONLINE...
    Sun May 21 03:10:10 2000
    Thread 1 advanced to log sequence 303
    Current log# 1 seq# 303 mem# 0: /usr/users/fraude/dblinks/redo_db/dbfraude_log0.dbf
    Sun May 21 03:11:48 2000
    alter ROLLBACK SEGMENT CLEANUP_RS0 SHRINK
    Sun May 21 03:11:49 2000
    Completed: alter ROLLBACK SEGMENT CLEANUP_RS0 SHRINK
    Sun May 21 03:11:49 2000
    alter ROLLBACK SEGMENT CLEANUP_RS0 OFFLINE
    Completed: alter ROLLBACK SEGMENT CLEANUP_RS0 OFFLINE
    Since this day, the delete process sends this message:
    --- Fault (4) Notify (3) : 2000-06-01 03:00:01 ---
    Message (400020): Database Operation Failed
    Partition: 0
    Module (13000): Daily Cleanup
    Description: ORA-00955: name is already used by an existing object
    My question here is : Is there a way, using oracle, to identify this object? Can I find the objects with a failure register in a table? in a log file?
    thanks for your comments and your efforts. I'll be very thankful.
    null

    It seems you should look here:
    ORA-1636 signalled during: alter ROLLBACK SEGMENT CLEANUP_RS0 ONLINE...
    Looks like you have ORA-01636 error:
    rollback segment 'string' is already online
    I suggest you check Oracle documentation about this error. Seems to me your process try to access rollback segment that is already in use.
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by German Garcia Ibarra ([email protected]):
    [b]Hello Everyone
    This is the first time I am a forum member and I'm figuring out how it works because I have a very big problem
    Look, I'm a support engineer and, as you know, the code of the application is not own by me.
    Three weeks ago I received a report which is related with the Rollback operation.
    There's a process which delete old data from my database and, normally, this process has three parts, as shown in the alert_dbinstance.log:
    Wed May 17 03:00:08 2000
    alter ROLLBACK SEGMENT CLEANUP_RS0 ONLINE
    Wed May 17 03:00:08 2000
    Completed: alter ROLLBACK SEGMENT CLEANUP_RS0 ONLINE
    Wed May 17 04:52:25 2000
    alter ROLLBACK SEGMENT CLEANUP_RS0 SHRINK
    Wed May 17 04:52:26 2000
    Completed: alter ROLLBACK SEGMENT CLEANUP_RS0 SHRINK
    Wed May 17 04:52:26 2000
    alter ROLLBACK SEGMENT CLEANUP_RS0 OFFLINE
    Completed: alter ROLLBACK SEGMENT CLEANUP_RS0 OFFLINE
    But, one day, the server crashed and this process didn't finish:
    Sat May 20 03:00:03 2000
    alter ROLLBACK SEGMENT CLEANUP_RS0 ONLINE
    Sat May 20 03:00:03 2000
    Completed: alter ROLLBACK SEGMENT CLEANUP_RS0 ONLINE
    Sat May 20 04:39:09 2000
    the next messages about this process are these:
    Sun May 21 03:00:04 2000
    alter ROLLBACK SEGMENT CLEANUP_RS0 ONLINE
    Sun May 21 03:00:04 2000
    ORA-1636 signalled during: alter ROLLBACK SEGMENT CLEANUP_RS0 ONLINE...
    Sun May 21 03:10:10 2000
    Thread 1 advanced to log sequence 303
    Current log# 1 seq# 303 mem# 0: /usr/users/fraude/dblinks/redo_db/dbfraude_log0.dbf
    Sun May 21 03:11:48 2000
    alter ROLLBACK SEGMENT CLEANUP_RS0 SHRINK
    Sun May 21 03:11:49 2000
    Completed: alter ROLLBACK SEGMENT CLEANUP_RS0 SHRINK
    Sun May 21 03:11:49 2000
    alter ROLLBACK SEGMENT CLEANUP_RS0 OFFLINE
    Completed: alter ROLLBACK SEGMENT CLEANUP_RS0 OFFLINE
    Since this day, the delete process sends this message:
    --- Fault (4) Notify (3) : 2000-06-01 03:00:01 ---
    Message (400020): Database Operation Failed
    Partition: 0
    Module (13000): Daily Cleanup
    Description: ORA-00955: name is already used by an existing object
    My question here is : Is there a way, using oracle, to identify this object? Can I find the objects with a failure register in a table? in a log file?
    thanks for your comments and your efforts. I'll be very thankful.
    <HR></BLOCKQUOTE>
    null

  • ORA-01548: active rollback segment

    Hi, I'm a junior DBA .
         I have 1 problem.
    I have create a new undo tablespace and set it to undo tablespace of instance
    ora11> alter system set
    undo_tablespace=undotbs2;
    but we can not drop the original one:
    ora11> drop tablespace undotbs1 including contents and datafiles; drop tablespace undotbs1 including contents and datafiles
    ERROR at line 1: ORA-01548: active rollback segment ‘_SYSSMU2_6654314$’ found, terminate dropping tablespace
    how can solved this problem?

    These are all the question asked by RHELSENSEI and answered by Anar Godjaev. Check RHELSENSEI activity
    https://forums.oracle.com/thread/2593502
    https://forums.oracle.com/thread/2592693
    https://forums.oracle.com/thread/2591625
    https://forums.oracle.com/thread/2590123
    https://forums.oracle.com/thread/2589495
    https://forums.oracle.com/thread/2590123
    https://forums.oracle.com/thread/2589495
    https://forums.oracle.com/thread/2589494
    https://forums.oracle.com/thread/2589494
    https://forums.oracle.com/thread/2589025
    https://forums.oracle.com/thread/2588204
    https://forums.oracle.com/thread/2588264
    https://forums.oracle.com/thread/2587557
    https://forums.oracle.com/thread/2587091
    https://forums.oracle.com/thread/2586768
    https://forums.oracle.com/thread/2586765

  • Rollback segment for set transaction

    there is way that i can setup a rollback segment for a spacific user or specific transction.
    ALTER ROLLBACK SEGMENT big_rbs ONLINE;
    SET TRANSACTION USE ROLLBACK SEGMENT big_rbs;
    sql .....
    commit;
    ALTER ROLLBACK SEGMENT big_rbs OFFLINE;
    the sql is going for about hour, i was woundering during that time can some else use this rollback segment. i just want this rbs to this user, how i can do that.
    thanks

    I guess i didn't clearify well. let say i created a rbs for specific tranction. before this transaction is start it will turn on this rbs and once this transaction is completed, it issue the command commit, and bring it back to this rbs offline. the question is durning this transaction does any other transaction can come and use this rbs instead of we have lot of other rbs.
    I hope that you get my point.

  • Rollback segment issue in oracle8i

    We are having 33GB size of Rollback segment , it is not coming down even after when the database get bounced.
    Even the transactions are not happening also it is showing same value and it is not coming down.
    My question is after transaction get over whether rollback segment is deallocated or not?
    Please explain in detail , how to deallocate those unused rollback segments.

    we dont have any distributed transactions.
    can u tell me is there any formula to set OPTIMAL value for roll back segments.
    please tell me the dependencies,
    & i have some more quries....
    1. If we shrink the rollback segment, will it grow later on when the transactions are going high???
    2.If we shrink through OEM, automatically oracle is shrinking that perticular RBS.
    here my doubt is on which basis Oracle is shrinking that RBS.
    Please give info,, in detail...

  • General - rollback segments

    Been reading manuals, I have few question to clarify about rollback segments ( Lets leave undo tablespace and automatic undo management aside )
    1) Rollback segments can be created in a tablespace - is there a max size/limit which could be specified for a rollback segment to use within a tablespace? - From reading manuals, the storage clause doesnt mention about max size/limt for a rollback segment; is it possible for rollback segment to fill-up tablespace (ummm due to some wired query[read consistency]/transaction) ?
    2) We can create a separate rollback tablespace and have multiple rollback segments.
    If there are 3 user tablespaces (T1/T2/T3), 1 rollback tablespace (RT).
    - I create 1 rollback segment in tablespace T1, T2, T3
    - I create 2 rollback segments in rollback tablespace RT
    A user with "default tablespace T1" when running a transaction, which rollback segment will be used by this user (when rollback segment is not explicitly specified)?
    Oracle-Student

    user11359766 wrote:
    Will the transaction spill over to the second rollback segment (i.e start using the 2nd rollback segment which is available and not being used by any other active transaction) or oracle will return an error since the first rollback segment assigned is filled up and the transaction is still active?This will be applied to both SMU and MMU.
    From the same link above,
    http://download.oracle.com/docs/cd/B10501_01/server.920/a96524/b_deprec.htm#634941
    For the duration of a transaction, the associated user process writes rollback information only to the assigned rollback segment.I hope its self explanatory that the transaction can't roll over to any other roll back segment once its own gets out of space. In teh case of SMU also, if the undo datafile can't grow, your transaction would be stopped.
    HTH
    Aman....

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

Maybe you are looking for