Undo Management

Hello guys,
I have a problem with Undo Tablespace in Oracle 9i.
There's a OLPT system, Oracle 9i DBServer on Linux.
The problem is that Undo datafile has grown very much, reaching about 4 GB. I restarted the my DB, but UndoTablespace continue with 99% used of 4GB.
I used mode auto. Well, I think that Oracle automatically handles onlining/offlining, as well as all other aspects of undo management. What it's happen?
Could you tell me why there's so much rollback space taken and how could I use it.
Any help appreciated.

Sounds ugly!
Can you make a new UNDO TS - to take the place of the other (large) one?

Similar Messages

  • UNDO Management - Config changes for OLTP and large background processes

    Hi,
    I am running 9i on a 2 node RAC cluster - Sun Solaris.
    I use Automatic Undo.
    The database is currently configured for OLTP and has 2 undo datafiles - 1GB in size and undo_retention set to default (900seconds)
    I am about to start scheduling a batch job to run each night that will delete approx 1 million records each time it runs.
    To get this to work without the dreaded Error -30036: ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDO01', I have increased the undo datafiles to 5GB and the undo_retention to 4000.
    The question is do I need to worry about switching between these settings - using the smaller values for daytime OLTP and the nighttime settings for the heavy processing?
    What issues might I encounter if I just left the UNDO Management settings in place that I use for the large delete?

    I would say no, leave the settings the highest level required to accomplish the work of the instance. Once the setting are correct for the instance, you should not have to change them around. They are really max setting for the heaviest load on your instance.

  • To change manul to auto undo management in 9i

    Hi
    My production database on manul undo management means (RBS) . I want to change this on auto mode Please Help me what steps i follow to do this
    DB 9.2 and OS AIX 5.2
    Thanks

    SQL> alter system set undo_management=manual scope=spfile;
    System altered.
    SQL> shutdown immediate;
    SQL> startup
    SQL> show parameter undo
    NAME TYPE VALUE
    undo_management string MANUAL
    undo_retention integer 1800
    undo_tablespace string UNDONEW
    SQL>
    do this same for auto....
    regards

  • Oracle 10g - undo management

    Guys,
    I am updating 1 million rows in Oracle 10g platform, normally when I do it in oracle 9i I run it as batch process and commit after each batch. Obviously to avoid/control undo generation. But in Oracle 10g I am told undo management is automatic and I do not need run the update as batch process.
    Is this right please throw some light on this new feature - automatic undo management
    Thanks

    Automatic undo management was available in 9i as well, and my guess is you were probably using it there. However, I'll assume for the sake of this writing that you were using manual undo management in 9i and are now on automatic.
    Automatic undo management depends upon UNDO_RETENTION, a parameter that defines how long Oracle should try to keep committed transactions in UNDO. However, this parameter is only a suggestion. You must also have an UNDO tablespace that's large enough to handle the amount of UNDO you will be generating/holding, or you will get ORA-01555: Snapshot too old, rollback segment too small errors.
    You can use the UNDO advisor to find out how large this tablespace should be given a desired UNDO retention, or look online for some scripts...just google for: oracle undo size
    Oracle 10g also gives you the ability to guarantee undo. This means that instead of throwing an error on SELECT statements, it guarantees your UNDO retention for consistent reads and instead errors your DML that would cause UNDO to be overwritten.
    Now, for your original question...yes, it's easier for the DBA to minimize the issues of UNDO when using automatic undo management. If you set the UNDO_RETENTION high enough with a properly sized undo tablespace you shouldn't have as many issues with UNDO. How often you commit should have nothing to do with it, as long as your DBA has properly set UNDO_RETENTION and has an optimally sized UNDO tablespace. Committing more often will only result in your script taking longer, more LGWR/DBWR issues, and the "where was I" problem if there is an error (if it errors, where did it stop?).
    Lastly (and true even for manual undo management), if you commit more frequently, you make it more possible for ORA-01555 errors to occur. Because your work will be scattered among more undo segments, you increase the chance that a single one may be overwritten if necessary, thus causing an ORA-01555 error for those that require it for read consistency.
    It all boils down to the size of the undo tablespace and the undo retention, in the end...just as manual management boiled down to the size, amount, and usage of rollback segments. Committing frequently is a peroxide band-aid: it covers up the problem, tries to clean it, but in the end it just hurts and causes problems for otherwise healthy processes.

  • Automatic Undo Management - Shrink Undo Segments

    Hello guys,
    i have a question regarding the automatic undo management and some large transactions.
    So lets take the following example:
    1 transaction with a lot of updates (round about 20.00000 entries) . After the update a commit was executed.
    Now the corresponding undo segment was blown up to 640 MB.
    Now my questions:
    Will this segment be shrinked after it is not needed anymore (STATUS = EXPIRED)?
    If not and another transaction needs some undo and activates this segment again.. 640 MB are going online again... but the transaction now only needs some KB.
    I know the algorithm if the undo segment needs to be extended (metalinknote #413732.1).. but what is happening to "big" segements if they are not needed anymore ... are the deallocated/shrinked after a time period?
    Regards
    Stefan

    Here is a little example of a smaller undo segment.. which shows my doubt:
    SELECT SEGMENT_NAME,STATUS FROM DBA_ROLLBACK_SEGS WHERE SEGMENT_NAME = '_SYSSMU13$';
    SEGMENT_NAME                   STATUS          
    _SYSSMU13$                     OFFLINE      
    SELECT SEGMENT_NAME, EXTENT_ID, BYTES, STATUS from DBA_UNDO_EXTENTS WHERE SEGMENT_NAME = '_SYSSMU13$';
    SEGMENT_NAME                   EXTENT_ID              BYTES                  STATUS   
    _SYSSMU13$                     0                      65536                  EXPIRED  
    _SYSSMU13$                     1                      65536                  EXPIRED  
    _SYSSMU13$                     2                      8388608                EXPIRED  
    _SYSSMU13$                     3                      8388608                EXPIRED  
    _SYSSMU13$                     4                      8388608                EXPIRED  
    _SYSSMU13$                     5                      8388608                EXPIRED  
    _SYSSMU13$                     6                      8388608                EXPIRED  
    _SYSSMU13$                     7                      8388608                EXPIRED  
    _SYSSMU13$                     8                      8388608                EXPIRED  
    _SYSSMU13$                     9                      8388608                EXPIRED  
    _SYSSMU13$                     10                     8388608                EXPIRED  
    _SYSSMU13$                     11                     67108864               EXPIRED   If the other guys are correct, the extents of undo segment _SYSSMU13$ should be deallocated... but they still persist.
    Regards
    Stefan

  • Undo Block Allocation Algorithm in Automatic Undo Management

    Hi,
    Can someone please explain me the Undo Block allocation algorithm in Automatic Undo Management??
    I need to tune my Undo tablespace in my Prod database.
    regards,
    Arul Sekar

    Hi,
    Thanks for the link provided.....
    But the link which has been provided does not contain the details about the Undo block allocation alogorithm in AUM.
    Can you please help me in this regard??
    regards,
    Arul Sekar

  • Automatic Undo Management, UNDO tablspace, and undo_segment count

    When I created my UNDO tablespace I was given 10 undo_segments:
    SQL> SELECT usn "Rollback Table", GETS, WAITS, xacts "Active Transactions"
    2 FROM V$ROLLSTAT;
    Rollback Table GETS WAITS Active Transactions
    0 1242 0 0
    1 88678 8 0
    2 83884 2 0
    3 82519 9 0
    4 85661 17 0
    5 80613 14 0
    6 82183 0 0
    7 92551 9 0
    8 78371 14 0
    9 89043 1 0
    10 75477 5 0
    The above statistic indicates I need more undo_segments. Do I need to recreate my UNDO tablespace in order to get the number of segments necessary to prevent waits or will more undo_segments be spawned eventually??
    I think I'm suffering Contention? Is there medicine?

    Compared to the number of GETS, the number of WAITS is very small. I doubt that you could ever have enough rollback segments to ensure that there were never any waits. Oracle's read consistency mechanism virtually guarantees that you will at least occasionally get waits.
    Aside from that, the point of UNDO tablespaces is that Oracle will manage the number and size of rollback segments based on the load. If you are really concerned about this, and if you have statistics indicating that waits for rollback segments are a performance bottleneck (something like a statspack report showing large amounts of time for one of the undo waits), then you can simply add more space to your undo tablespace, and Oracle will likely use it to add additional segmetns if it feels the need.
    John

  • Problem with Undo manager using highlighting

    Hello,
    I am writing a little text editor with syntax highlighting, but I have a problem with the UndoManager.
    Everytime I undo an action the UndoManager removes just the attributes of the text, not the text itself.
    Does anybody know a way how to make the UndoManager not recognizing the attributes.
    Thanks in advance.

    In your UndoableEditListener, you can check the type of the edit, and ignore it if it's an attribute change:
        public void undoableEditHappened(UndoableEditEvent e) {
            UndoableEdit edit = e.getEdit();
            if (edit instanceof DefaultDocumentEvent &&
                ((DefaultDocumentEvent)edit).getType() ==
                    DefaultDocumentEvent.EventType.CHANGE) {
                return;
            undoMgr.addEdit(edit);
        }

  • Automatic UNDO Management

    Hi there,
    I have a Datawarehouse DB , with two UNDO tablespaces,Last friday we switched UNDO_TABLESPACE to UNDO01 and UNDO02 is not active.While querying DBA_UNDO_EXTENTS , status of all extents in UNDO02 is marked as EXPIRED but there is no free space left in UNDO02 tablespace.
    Now the qustion is
    1. why Oracle is not releasing EXPIRED extents from the NON-ACTIVE Undo tablespace?
    2. AS per Oracle Documentation "Switching Undo Tablespaces" - "The switch operation does not wait for transactions in the old undo tablespace to commit. If there are any pending transactions in the old undo tablespace, the old undo tablespace enters into a PENDING OFFLINE mode (status). In this mode, existing transactions can continue to execute, but undo records for new user transactions cannot be stored in this undo tablespace" ---- But STATUS column in DBA_TABLESPACES in my DB showing both Tablespaces are "ONLINE",
    Any thoughts????
    Thanks in advance

    SQL> select segment_name, owner, tablespace_name,status from dba_rollback_segs;
    SEGMENT_NAME OWNER TABLESPACE_NAME STATUS
    SYSTEM SYS SYSTEM ONLINE
    SYSROL SYS SYSTEM OFFLINE
    _SYSSMU2$                      PUBLIC UNDO1                          ONLINE
    _SYSSMU3$                      PUBLIC UNDO1                          ONLINE
    _SYSSMU4$                      PUBLIC UNDO1                          ONLINE
    _SYSSMU5$                      PUBLIC UNDO1                          ONLINE
    _SYSSMU6$                      PUBLIC UNDO1                          ONLINE
    _SYSSMU7$                      PUBLIC UNDO1                          ONLINE
    _SYSSMU8$                      PUBLIC UNDO1                          ONLINE
    _SYSSMU9$                      PUBLIC UNDO1                          ONLINE
    _SYSSMU10$                     PUBLIC UNDO1                          ONLINE
    _SYSSMU11$                     PUBLIC UNDO1                          ONLINE
    _SYSSMU12$                     PUBLIC UNDO1                          ONLINE
    _SYSSMU13$                     PUBLIC UNDO1                          ONLINE
    _SYSSMU14$                     PUBLIC UNDO1                          ONLINE
    _SYSSMU15$                     PUBLIC UNDO1                          ONLINE
    _SYSSMU16$                     PUBLIC UNDO1                          ONLINE
    _SYSSMU17$                     PUBLIC UNDO1                          ONLINE
    _SYSSMU18$                     PUBLIC UNDO2                          OFFLINE
    _SYSSMU19$                     PUBLIC UNDO2                          OFFLINE
    _SYSSMU20$                     PUBLIC UNDO2                          OFFLINE
    _SYSSMU21$                     PUBLIC UNDO2                          OFFLINE
    _SYSSMU22$                     PUBLIC UNDO1                          ONLINE
    _SYSSMU23$                     PUBLIC UNDO1                          OFFLINE
    _SYSSMU24$                     PUBLIC UNDO1                          OFFLINE
    _SYSSMU25$                     PUBLIC UNDO1                          OFFLINE
    _SYSSMU26$                     PUBLIC UNDO1                          OFFLINE
    _SYSSMU27$                     PUBLIC UNDO1                          OFFLINE
    _SYSSMU28$                     PUBLIC UNDO2                          OFFLINE
    _SYSSMU29$                     PUBLIC UNDO2                          OFFLINE
    _SYSSMU30$                     PUBLIC UNDO2                          OFFLINE
    _SYSSMU31$                     PUBLIC UNDO2                          OFFLINE
    _SYSSMU32$                     PUBLIC UNDO2                          OFFLINE
    _SYSSMU33$                     PUBLIC UNDO2                          OFFLINE
    34 rows selected.
    SQL> show parameter UNDO
    NAME TYPE VALUE
    undo_management string AUTO
    undo_retention integer 40000
    undo_suppress_errors boolean FALSE
    undo_tablespace string UNDO1
    SQL>
    Thanks

  • Im a Uni student&need help:JAVA Final Year Project: Undo Manager Problem

    Hey all,
    Im writing a Final Year Project and have minimal experience writing in JAVA.
    It is an information visualisation assignment which involves reproducing code/text in a reduced format. Sort of to do with Line oriented statistics.
    http://www.cc.gatech.edu/aristotle/Tools/tarantula/continuous.gif
    This image will give you an idea of what im talking about.
    Anyway, i need to know if its possible to get information about individual undos/edits from an undomanager.
    Basically i need to be able to say, for example,
    there are 12 undos
    undo 12 occurs at line X
    undo 11 occurs at line Y
    etc etc
    I need to be able to get this information without actually invoking the Undo last edit call.
    Im bringing the Java undomanager tutorial home but from what ive read it seems like impossible?
    Any and all help appreciated.
    Regards,
    P

    When I was at uni I had to implement that for the text area of an IDE. All I did was rip off the code from the Notepad.java that comes with the SDK.

  • ORA-01555 when UNDO Management is Auto

    Hi,
    I am using Oracle 10g 10.2.0.3 on linux 64 bit
    My UNDO_MANAGEMENT is AUTO and Tablespace size is Auto
    Undo_retention=15
    Today morning, I have received following error in Alert log
    ORA-01555 caused by SQL statement below (SQL ID: 9yfaam0vn51b5, Query Duration=1257324485 sec, SCN: 0x0000.084ad6ea):
    EM is showing following
    Snapshot Too Old Error detected: SQL ID 9yfaam0vn51b5, Snapshot SCN 0x0000.084ad6ea, Recent SCN 0x0000.084e39df, Undo Tablespace UNDOTBS1, Current Undo Retention 943.
    How dio i find that which query created a problem as SQL ID: 9yfaam0vn51b5 is not in table v$sql
    Do i need to do anything or Oracle will take care of UNDO?
    Regards

    a mock up
    SQL> select max(maxquerylen)
    2            from v$undostat;
    MAX(MAXQUERYLEN)
    62057
    SQL> show parameter undo
    NAME                                 TYPE        VALUE
    undo_management                      string      AUTO
    undo_retention                       integer     25000
    undo_tablespace                      string      UNDOTBS1
    SQL> select (62057/60)/60 query,(25000/60)/60 retention
      2    from dual
      3  /
         QUERY  RETENTION
    17.2380556 6.94444444Above query executing tenure is 17 hours while undo retention is approximate 7 hours,either change retention period to 20% extra with yours query execution tenure and then check yours query again.
    at least set undo retention to 75000,also better approach to tune query why its too taking so much time?
    Khurram

  • Undo management error

    hi ,
    can u please let me know how did you solve the problem.
    i tried to switch from Rollback segment to undo tablespace.
    I have already set:
    undo_management=auto
    undo_tablespace=undotbs01
    but still getting the error.
    ORA-00376: file 3 cannot be read at this time
    ORA-01110: data file 3: '/nscm01/scm/rbs/rbs01.dbf'
    Thanks in advance,
    chen

    Hi,
    ORA-00376: file 3 cannot be read at this time
    ORA-00376: file string cannot be read at this time
    Cause: attempting to read from a file that is not readable. Most likely the file is offline.
    Action: Check the state of the file. Bring it online
    regards
    Taj

  • UNDO Table space management

    Dear All,
    My client Export/Import Process failed while Importing at quality server. Production Server Export process completed successfully.
    It looks like your UNDO tablespace is too small to handle a large volume transaction. Either increase your UNDO tablespace size or commit more often.  Received this error at QAR Server and client import process failed.
    Pl. guide how to Increase UNDO Table space or if any more solution to resolve my issue.
    Regards,
    Naik Diptesh

    Hi,
    As per your error, it looks like that your Undo tablespace was full because of that your import failed. Undo tablespace you can increase from brtools in PSAPUNDO.
    As you have not mentioned your database release. Please check below notes for undo management as per your release.:
    Note 1035137 - Oracle Database 10g: Automatic Undo Retention
    Note 600141 -     Oracle9i: Automatic UNDO Management
    Thanks
    Sunny

  • System Managed Undo.

    Can I use the system managed undo segment (rollback segment) while refreshing of materialized view. I would try something like following
    SQL> Alter materialized view mview refresh using master rollback segment _SYSSMU9$;
    Currenty the database is running with auto undo management mode.
    Case1: No errors
    SQL> alter materialized view mview refresh using master rollback segment system;
    Materialized view altered.
    Case2: Error
    SQL> alter materialized view mview refresh using master rollback segment _SYSSMU9$;
    ERROR at line 1:
    ORA-00911: invalid character
    Why is this happening?

    I got it
    SQL> alter materialized view mview refresh using master rollback segment "_SYSSMU9$";
    works for me.

  • Can UNDO tablespace be locally managed?

    I read in the Oracle 9i Administrators guide that the SYSTEM tablespace can ONLY be dictionary managed. You do not have the option of having it locally managed. Is this the same for the UNDO tablespace? I couldn't find it anywhere in the Admin guide, one way or the other.
    Michael

    UNDO_TABLESPACE
    Parameter type
    String
    Syntax
    UNDO_TABLESPACE = undoname
    Default value
    The first available undo tablespace in the database.
    Parameter class
    Dynamic: ALTER SYSTEM
    Range of values
    Legal name of an existing undo tablespace
    Real Application Clusters
    Multiple instances can have different values.
    UNDO_TABLESPACE specifies the undo tablespace to be used when an instance starts up. If this parameter is specified when the instance is in manual undo management mode, an error will occur and startup will fail.
    If the UNDO_TABLESPACE parameter is omitted, the first available undo tablespace in the database is chosen. If no undo tablespace is available, the instance will start without an undo tablespace. In such cases, user transactions will be executed using the SYSTEM rollback segment. You should avoid running in this mode under normal circumstances.
    You can replace an undo tablespace with another undo tablespace while the instance is running.
    See Also:
    Oracle9i SQL Reference.
    http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96536/ch1218.htm#REFRN10227
    http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96540/toc.htm
    Joel P�rez

Maybe you are looking for