Inactive undo tablespace, still needed?

Dear All,
I am using ORACLE 10.2 database server.
I changed the active undo space from USDOTBS1 to UNDOTBS2 and bring the inactive one to offline (normal mode).. The tablespace UNDOTBS1 is empty. As I read in the documentation an undo table space cannot be put offline if it still contains any data used by ongoing transactions;
However, when some DML statements (completely new transaction) executes, Oracle complains about having no access to the UNDOTBS1, and datafile associated with it. I don’t understand how it is possible since the active undo tables space is UNDOTBS2.
After bringing UNDOTBS1 back online (without making it active), everything works fine.
The error is as follows:

So how did you confirm there were no outstanding snapshot dependant transactions against the undo tablespace?
http://stanford.edu/dept/itss/docs/oracle/10g/server.101/b10739/undo.htm
Looking at the section on dropping undo talks about dependant transactions on before snapshots of undo.
"However, since DROP TABLESPACE drops an undo tablespace even if it contains unexpired undo information (within retention period), you must be careful not to drop an undo tablespace if undo information is needed by some existing queries."

Similar Messages

  • How to Shrink UNDO Tablespace

    Hello,
    We had a UNDO Tablespace of 22Gb but it is using just 2GB. How to shrink undo tablespace. we are using clustered 3 node production database 10.2.0.4
    Is there is way that we can shrink UNDO Tablespace or do i need to create a UNDO tablespace and assign the undo tablespace to DB and drop the old UNDO?
    How to ensure that transactions are done and free to drop the old UNDO?
    Is it something we need to restart all the three nodes as each node has its own UNDO Tablespace.
    Need Help on this issue.
    would appreciate your quick response.
    Thanks

    if i am in your place i will do the following:
    <pre class="jive-pre">1-Query DBA_DATA_FILES to determine the name of the datafiles of the UNDO</pre>
    2. Create a new UNDO tablespace.
    <pre class="jive-pre">CREATE UNDO TABLESPACE undo_ts2 DATAFILE '/directory/undo_ts2_01.dbf' SIZE xxxM;</pre>
    3. Modify the database parameter to use the new UNDO tablespace.
    <pre class="jive-pre"> ALTER SYSTEM SET undo_tablespace=undo_ts2 SCOPE=BOTH; </pre>
    4-The Drawback:
    <pre class="jive-pre">New transactions will begin using the new undo tablespace. After some time passes (at least the number of seconds specified by the UNDO_RETENTION initialization parameter), you can drop the old UNDO tablespace. The downside to this approach is that for a short time period, your database will have two UNDO tablespaces</pre>
    Regards
    Mohamed

  • Need to drop datafile from my undo tablespace

    I have a undo tablespace and it has 2 datafiles. i would like to drop one datafile.
    befor i am droping this datafile i am going to bring this file to offline and i got this message: ORA--01145 offline immediate disallowed unless media recovery enable.
    can someone tell me how i can safly do it without any problem.
    Thanks

    An undo tablespace can be dropped like any other tablespace, but not until all transactions within the tablespace are complete. First, specify a new undo tablespace as in the previous example. To see if the tablespace has any pending transactions, run the following query:
    SQL> select rn.name, rs.status
    2 from v$rollname rn, v$rollstat rs
    3 where rn.name in
    4 (select segment_name from dba_segments
    5 where tablespace_name = 'UNDOTBS')
    6 and rn.usn = rs.usn
    7 ;

  • Dropping the 4th undo tablespace, 4th thread from a 3 instance database

    I migrated a 4 instance RAC database from a 4 node server to a 3 node RAC database server. However, I still have the 4th undo tablespace and the 4th redo log thread. Are there any precautions I need to take before dropping the 4th undo tablespace? Must I also drop the 4th redo log thread, or will the database function properly even without a 4th node to go with the 4th thread?
    I presume I have to also disable the 4th public thread? Is this the command below?
    Alter database disable public thread=4;

    I guess it does not matter that group 12 in thread 4 is "CURRENT" since the thread is not being used. But I don't believe I can drop a "CURRENT" group, can I?
    SQL> select group#, thread#, bytes, members, status from v$log;
        GROUP#    THREAD#      BYTES    MEMBERS STATUS
             1          1   52428800          2 CURRENT
             2          1   52428800          2 INACTIVE
             3          1   52428800          2 INACTIVE
             4          2  104857600          2 INACTIVE
             5          2  104857600          2 INACTIVE
             6          2  104857600          2 CURRENT
             7          3   52428800          2 INACTIVE
             8          3   52428800          2 INACTIVE
             9          3   52428800          2 CURRENT
            10          4   52428800          2 INACTIVE
            11          4   52428800          2 INACTIVE
            12          4   52428800          2 CURRENT
    12 rows selected.

  • Is there so call "dedicated" UNDO tablespace in Oracle 9i and higher?

    Since one of our applicaions needs to process large amounts of data, we have been using a dedicated rollback segment in order to avoid the "snapshot too old" problem.
    Recently our DB upgraded to Oracle 9i and DBA asked us to use "undo" tablespace.
    Based the Oracle 9i Doc., it only allows to select ONE undo tablespace at a time.
    If so, DBA has to make the only UNDO as large as our Cash large transactions
    need(adjust the UNDO_RENTION), which inevitably waste lots of space.
    Does Oracle 9i allow to have one dedicated UNDO tablespace for large transactions while another one for regular transactions just like we use the old rollback segments.
    Thanks in advance

    Why have multiple UNDO tablespaces? You can only use one at a time, and when the other one is not being used, it still consumes storage space.
    Spend a little time determining how much undo you need and size undo tablespace and undo retention around those values and you should be able to resolve the problems you are experiencing now.
    http://download-east.oracle.com/docs/cd/B10501_01/server.920/a96521/undo.htm#9505

  • Cannot drop old undo tablespace. Cause: active rollback segment

    dear all.
    db: oracle 10.2.0.1
    os: rhel as version 5 64 bits.
    This is a testing database. And my database is online and open. But i can free the external usb disk that contains my ols undotbs.
    I want to drop old undo tablespace but this is not possible.
    1.- In order to open my database i had my datafile( '/mnt/hdext/back_plelds/undotbs02.dbf') offline drop, and then i can to open my database.
    2.- When i try to delete my old undo tablespace im getting this error:
    SQL> drop tablespace undotbs1 including contents and datafiles;
    drop tablespace undotbs1 including contents and datafiles
    ERROR at line 1:
    ORA-01548: active rollback segment '_SYSSMU1$' found, terminate dropping
    tablespace
    3.- My default undo_tablespace is another that i was created before step 1.
    SQL> sho parameter undo_ta
    NAME TYPE VALUE
    undo_tablespace string UNDOTMP
    SQL>
    Well i search in metalink ORA-01548 code error and in 18947.1 doc whows me that the solution is:
    Action: Shut down instances that use the active rollback segments in the
    tablespace and then drop the tablespace.
    4.- I try to shutdown but im getting:
    SQL> shutdown immediate;
    ORA-00376: file 10 cannot be read at this time
    ORA-01110: data file 10: '/mnt/hdext/back_plelds/undotbs02.dbf'
    SQL>
    This /mnt/hdext is an external USB disk and i have all permissions. I exported tables without any problem and i can read all files.
    i search un metalink again ora codes (ORA-00376 ORA-01110) and the doc id: 427801.1 shows in the solution:
    Drop the old undo tablespace instead of making it offline.
    but when i try to drop the tablespace it shows the error describe in the step 2.
    Facts:
    - my tablespace UNDOTBS1 is ONLINE. I put in offline and this is not the solution.
    - This is the status of my rollback segments:
    SQL> select segment_name, status from dba_rollback_segs where
    2 tablespace_name='UNDOTBS1';
    SEGMENT_NAME STATUS
    _SYSSMU1$                      NEEDS RECOVERY
    _SYSSMU2$                      NEEDS RECOVERY
    _SYSSMU3$                      NEEDS RECOVERY
    _SYSSMU4$                      NEEDS RECOVERY
    _SYSSMU5$                      NEEDS RECOVERY
    _SYSSMU6$                      NEEDS RECOVERY
    _SYSSMU7$                      NEEDS RECOVERY
    _SYSSMU8$                      NEEDS RECOVERY
    _SYSSMU9$                      NEEDS RECOVERY
    _SYSSMU10$                     NEEDS RECOVERY
    _SYSSMU11$                     OFFLINE
    SEGMENT_NAME STATUS
    _SYSSMU12$                     OFFLINE
    12 rows selected.
    SQL>
    - I have the note (Unable to drop und tablespace In this article describe the problem but this is not the same. The difference is that i cannot drop the rollback segment that describe in step 2.
    SQL> drop rollback segment "_SYSSMU1$";
    drop rollback segment "_SYSSMU1$"
    ERROR at line 1:
    ORA-30025: DROP segment '_SYSSMU1$' (in undo tablespace) not allowed
    in metalink the doc id: 173696.1 shows the solution:
    Action:     Check the undo segment name and reissue statement if necessary.
    i cannot drop the rollback_segment
    What can i do ???
    thanks a lot.

    in step 4 did you try with shutdown abort?
    If its still does not work then create another new table space with new file and then swtich to that tablespace http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/undo.htm#sthref1504Khurram

  • Cannot drop undo tablespace

    Hello:
    I've created a new undo tablespace undotbs2. I've set it to the default undo tablespace. When I've tried to drop the old one, I get the following error:
    SQL> conn / as sysdba
    Connected.
    SQL> DROP TABLESPACE undotbs1 INCLUDING CONTENTS AND DATAFILES;
    DROP TABLESPACE undotbs1 INCLUDING CONTENTS AND DATAFILES
    ERROR at line 1: ORA-01548: active rollback segment '_SYSSMU7$' found, terminate dropping tablespace
    This is a production database. The service is down because the partition with the Oracle tablespaces: system, undo, temp, etc is full.
    After shutting down the database the problem persist: I cannot drop the old undo tablespace because of the same error.
    I've followed the note 1321093.1. Here the query results:
    Select segment_name, status, tablespace_name, rs.segment_id
    from dba_rollback_segs rs
    where status not in ('ONLINE','OFFLINE');
    _SYSSMU7$ PARTLY AVAILABLE UNDOTBS1 7
    SELECT KTUXEUSN, KTUXESLT, KTUXESQN, /* Transaction ID */ KTUXESTA Status, KTUXECFL Flags
    FROM x$ktuxe
    WHERE ktuxesta !='INACTIVE' AND ktuxeusn =7;
    7 47 382687 ACTIVE DEAD
    SELECT LOCAL_TRAN_ID,GLOBAL_TRAN_ID,STATE,MIXED,COMMIT# FROM DBA_2PC_PENDING;
    No rows
    SELECT LOCAL_TRAN_ID,IN_OUT,DATABASE,INTERFACE FROM dba_2pc_neighbors;
    No rows
    As you can see, there is no pending transactions. No application is connected to the database (service is down), however the database is appling rollbacks since 2 days.
    A lot of archivelogs are being created at rolling back (30 GB archivelogs per hour). Here a tail of the alertlog file:
    Wed Apr 17 06:19:53 2013
    Thread 1 advanced to log sequence 7382
    Current log# 5 seq# 7382 mem# 0: /ora2/origlogs/webfrbr/redo05_m1.log
    Current log# 5 seq# 7382 mem# 1: /ora3/mirrorlogs/webfrbr/redo05_m2.log
    Wed Apr 17 06:21:16 2013
    Thread 1 advanced to log sequence 7383
    Current log# 6 seq# 7383 mem# 0: /ora2/origlogs/webfrbr/redo06_m1.log
    Current log# 6 seq# 7383 mem# 1: /ora3/mirrorlogs/webfrbr/redo06_m2.log
    Wed Apr 17 06:22:41 2013
    Thread 1 advanced to log sequence 7384
    Current log# 4 seq# 7384 mem# 0: /ora2/origlogs/webfrbr/redo04_m1.log
    Current log# 4 seq# 7384 mem# 1: /ora3/mirrorlogs/webfrbr/redo04_m2.log
    Wed Apr 17 06:24:02 2013
    Thread 1 advanced to log sequence 7385
    Current log# 5 seq# 7385 mem# 0: /ora2/origlogs/webfrbr/redo05_m1.log
    Current log# 5 seq# 7385 mem# 1: /ora3/mirrorlogs/webfrbr/redo05_m2.log
    Wed Apr 17 06:25:24 2013
    Thread 1 advanced to log sequence 7386
    Current log# 6 seq# 7386 mem# 0: /ora2/origlogs/webfrbr/redo06_m1.log
    Current log# 6 seq# 7386 mem# 1: /ora3/mirrorlogs/webfrbr/redo06_m2.log
    Wed Apr 17 06:26:46 2013
    Thread 1 advanced to log sequence 7387
    Current log# 4 seq# 7387 mem# 0: /ora2/origlogs/webfrbr/redo04_m1.log
    Current log# 4 seq# 7387 mem# 1: /ora3/mirrorlogs/webfrbr/redo04_m2.log
    Oracle Database - Enterprise Edition 10.2.0.3
    Linux x86-64 Oracle Linux 5
    Please, consider the output of the following queries too:
    select * from V$FAST_START_TRANSACTIONS
    USN 7 -- Undo segment number of the transaction
    SLT 47 -- Slot within the rollback segment
    SEQ 382687 -- Incarnation number of the slot
    STATE RECOVERING --
    UNDOBLOCKSDONE 0 -- Number of undo blocks completed on the transaction
    UNDOBLOCKSTOTAL 2079151 -- Total number of undo blocks that need recovery
    PID 15 -- ID of the current server it has been assigned to
    CPUTIME 1153 -- Time for which recovery has progressed (in seconds)
    PARENTUSN 0 -- Undo segment number of the parent transaction in PDML
    PARENTSLT 0 -- Slot of the parent transaction in PDML
    PARENTSEQ 0 -- Sequence number of the parent transaction in PDML
    XID 07002F00DFD60500 -- Transaction ID
    PXID 0000000000000000 -- Parent transaction ID
    RCVSERVERS 1 -- Number of servers used in the last recovery
    select * from x$ktuxe where ktuxecfl = 'DEAD';
    ADDR 00002B3E808B9BD8
    INDX 145
    INST_ID 1
    KTUXEUSN 7
    KTUXESLT 47
    KTUXESQN 382687
    KTUXERDBF 2
    KTUXERDBB 2080076
    KTUXESCNB 424110769
    KTUXESCNW 0
    KTUXESTA ACTIVE
    KTUXECFL DEAD
    KTUXEUEL 3739
    KTUXEDDBF 0
    KTUXEDDBB 0
    KTUXEPUSN 0
    KTUXEPSLT 0
    KTUXEPSQN 0
    KTUXESIZ 2079151
    select * from v$fast_start_servers;
    RECOVERING 0 15 07002F00DFD60500
    IDLE 0 16 0000000000000000
    IDLE 0 17 0000000000000000
    IDLE 0 18 0000000000000000
    IDLE 0 19 0000000000000000
    IDLE 0 20 0000000000000000
    IDLE 0 21 0000000000000000
    IDLE 0 22 0000000000000000
    IDLE 0 25 0000000000000000
    IDLE 0 26 0000000000000000
    IDLE 0 27 0000000000000000
    IDLE 0 28 0000000000000000
    IDLE 0 29 0000000000000000
    IDLE 0 30 0000000000000000
    IDLE 0 31 0000000000000000
    IDLE 0 32 0000000000000000
    Any ideas to solve this issue?
    Thank you in advance
    Edited by: albrotar on Apr 17, 2013 1:48 AM
    Edited by: albrotar on Apr 17, 2013 1:49 AM
    Edited by: albrotar on Apr 17, 2013 1:51 AM
    Edited by: albrotar on Apr 17, 2013 1:52 AM
    Edited by: albrotar on Apr 17, 2013 1:54 AM

    I've found some errors in alert log file occurred at shutting down the database:
    +...+
    Control autobackup written to DISK device
    handle '/orabck/rman/webfrbr/ora_cfc-3587726327-20130414-00'
    Completed: CREATE UNDO TABLESPACE undotbs2 DATAFILE '/orabck/undo/undotbs02.dbf'
    SIZE 500M reuse autoextend ON NEXT 5M maxsize 32767M
    Sun Apr 14 15:46:43 2013
    Successfully onlined Undo Tablespace 5.
    Undo Tablespace 1 moved to Pending Switch-Out state.
    *** active transactions found in undo tablespace 1 during switch-out.
    Sun Apr 14 15:46:44 2013
    ALTER SYSTEM SET undo_tablespace='UNDOTBS2' SCOPE=BOTH;
    Sun Apr 14 16:11:42 2013
    ALTER ROLLBACK SEGMENT "_SYSSMU7$" offLINE
    Sun Apr 14 16:11:42 2013
    Completed: ALTER ROLLBACK SEGMENT "_SYSSMU7$" offLINE
    Sun Apr 14 16:12:36 2013
    DROP TABLESPACE undotbs1 INCLUDING CONTENTS AND DATAFILES
    Sun Apr 14 16:12:36 2013
    +...+
    Thread 1 advanced to log sequence 5107
    Current log# 4 seq# 5107 mem# 0: /ora2/origlogs/webfrbr/redo04_m1.log
    Current log# 4 seq# 5107 mem# 1: /ora3/mirrorlogs/webfrbr/redo04_m2.log
    Sun Apr 14 19:00:28 2013
    Stopping background process CJQ0
    Sun Apr 14 19:00:29 2013
    Stopping background process QMNC
    Sun Apr 14 19:00:31 2013
    Stopping background process MMNL
    Sun Apr 14 19:00:32 2013
    Stopping background process MMON
    Sun Apr 14 19:00:34 2013
    Shutting down instance (immediate)
    License high water mark = 31
    Sun Apr 14 19:00:34 2013
    Stopping Job queue slave processes
    Sun Apr 14 19:00:34 2013
    Job queue slave processes stopped
    All dispatchers and shared servers shutdown
    Sun Apr 14 19:00:42 2013
    ALTER DATABASE CLOSE NORMAL
    Sun Apr 14 19:04:28 2013
    +...+
    Thread 1 advanced to log sequence 5118
    Current log# 6 seq# 5118 mem# 0: /ora2/origlogs/webfrbr/redo06_m1.log
    Current log# 6 seq# 5118 mem# 1: /ora3/mirrorlogs/webfrbr/redo06_m2.log
    Sun Apr 14 20:11:21 2013
    Errors in file /ora1/admin/webfrbr/bdump/webfrbr_smon_4629.trc:
    +ORA-07445: exception encountered: core dump [_intel_fast_memcpy.A()+10] [SIGSEGV] [Invalid permissions for mapped object] [0x2B6B66003000] [] []+*
    Sun Apr 14 20:11:21 2013
    Errors in file /ora1/admin/webfrbr/bdump/webfrbr_smon_4629.trc:
    ORA-00600: internal error code, arguments: [999], [0x107C14015], [], [], [], [], [], []*
    +ORA-07445: exception encountered: core dump [_intel_fast_memcpy.A()+10] [SIGSEGV] [Invalid permissions for mapped object] [0x2B6B66003000] [] []+*
    Sun Apr 14 20:11:22 2013
    +...+
    Sun Apr 14 20:11:48 2013
    Errors in file /ora1/admin/webfrbr/bdump/webfrbr_pmon_4617.trc:
    ORA-00474: SMON process terminated with error
    Sun Apr 14 20:11:48 2013
    +...+
    The instance could start up, but after this, it is recovering undo and generating redo since 2 days

  • Dropping Undo Tablespace 9i

    Hey Folks,
    I really need some help here.
    I'm trying to drop/recreate the undo tablespace (currently 25gig) Oracle 9i
    When I try to drop the undo tablespace 'UNDOTBS1' I get the following error:
    “ORA-01548: active rollback segment '_SYSSMU1$' found, terminate dropping tablespace”
    Here's what I have tried so far:
    - Bounced the DB several times hoping to get rid of the reference to the active rollback segment. No luck.
    - Created a new undo table space
    - Tried 'Alter system set undo_tablespace=new_one' (noticed that 10 new rollback segs were created '_SYSMU11$..SYSMU20$' pointing to the new undo tablespace)
    - I then performed an offline drop of the undo tablespace data file. After the offline drop, the system rollback segs SYSMU01$..SYSMU10$ went offline as would be expected.
    - Even with the new undo tablespace, all other application tablespaces still use the old undo which due to the offline drop, no inserts, deletes, etc. will work.
    After all the above, I still get the same error when trying to drop the undo tablespace.
    Any ideas? Ideally I would like to be able to drop the undo tablespace and recreate it, but at this point I'd be happy to bring back the undo tablespace datafile so we can at least use the database again.
    Thanks in advance!!
    Colin

    SQL> show parameters undo
    undo_retention integer
    10800
    undo_suppress_errors boolean
    FALSE
    undo_tablespace string
    UNDOTBS03
    r.- The undo tablespace which the database is looking for is this one ( UNDOTBS03 )
    What is strange about the lines above is that I have
    all those params above commented out in my
    \pfile\init.ora file (and have bounced the db).
    I’m not sure why they are still showing up.
    r.- Perhaps your instance is started with the spfile instead of the init file
    Here's what we did after the UNDOTBS1 tablespace
    caused the disk to run out of space during a large
    import (from now on we are going to use commit = y):
    1. Created a new undo tablespace UNDOTBS03 - got
    errors so instead we to created it as a temp
    tablespace UNDOTBS03 which worked. r.- Yes, but that tablespace was created as a UNDO TABLESPACE ?
    2. Tried to drop UNDOTBS1 got the following error
    msg:
    ORA-01548: active rollback segment '_SYSSMU1$' found,
    terminate dropping tablespacer.- Of course, the database did not allow to drop it beacause there were pending transactions
    3. SQL> alter system set undo_tablespace =
    'UNDOTBS03' scope = both. Tried dropping UNDOTBS1.
    Same error as in #2 above.r.- There were still pending transactions with the older undo tablespace
    4. We then offline dropped the datafile associated
    with UNDOTBS1 hoping that would then allow us to drop
    UNDOTBS1. Same error as #2.r.- That was the worst you did. You can not drop a tablespace so...
    5. Then tried creating a undo tablespace again:
    Create UNDO tablespace undo_temp
    datafile 'D:\oracle\oradata\usbperf\undo_temp.DBF'
    size 25m autoextend on;
    Error on line 0
    Create UNDO Tablespace undo_temp
    datafile 'D:\oracle\oradata\usbperf\undo_temp.
    ORA-00604: error occurred at recursive SQL level 1
    ORA-00376: file 2 cannot be read at this time
    ORA-01110: data file 2:
    'D:\ORACLE\ORADATA\USBPERF\UNDOTBS01.DBF'
    So that’s where we are. I'm guessing that the
    original undo tablespace corrupted when it tried to
    extend and ran of disk space?
    Thanks again for the help.
    Colin ok I can guide to solve this but you have to do what I am going to tell you step by step. Is this a production database ?
    Joel Pérez
    http://www.oracle.com/technology/experts

  • Cannot shrink the undo tablespace

    Hello!
    I have run a very long procedure, which generated 15GB undo information. Now I can see in the enterprise manager, that the undo tablespace is empty again. I tried to resize the datafile, but I receive "*ORA-03297*: file contains used data beyond requested RESIZE value". How can I shrink the tablespace without dropping and recreating it?
    I tried also
    purge recyclebin;
    I still get ORA-03297 if I try to resize the datafile.
    I wanted to try something like
    ALTER TABLE xxxxx UNALLOCATE UNUSED;
    or
    ALTER TABLE xxxxx SHRINK SPACE;
    but are there any tables that save the undo information?
    Regards.

    Hi
    well, my transaction is ready! The undo tablespace has not more that 10M of information, the other 15G are free!
    Thanks for the answers, it seems that i still have recreate it ...
    Well, another quertion:
    Is it possible, that I just have to wait longer before I resize the undo data file? I have just succeeded in resizing the data file to 7 GB. I really wish I could shrink it to 100M or so, but still - from 15G to 7G is a lot better! 2 hours ago this action was not possible. Is it some automatic management, that needs to time-out before I can shrink the undo tablespace?
    Edited by: user10962462 on Apr 8, 2009 2:39 AM

  • Undo tablespace keeps on growing

    We have a 3rd party application running on our oracle(10.2.0.4) database running on 64bit solaris(sparc) machine.
    Since few days my undo started going up. I increased the size from 2g to 5g. Still it is at more then 90%levels.
    I ran this query to see which session is using maximum undo
    SELECT a.sid, b.name, a.value
    FROM v$sesstat a, v$statname b
    WHERE a.statistic# = b.statistic#
    AND a.statistic# = 176
    ORDER BY a.value DESC
    From this i found the session which is using max undo.
    When i query this sid from v$session i see this is inactive
    my undo retention is set to 9000 and undo management is auto
    how can i check if i have expired undo blocks that are not being used

    >
    Since few days my undo started going up. I increased the size from 2g to 5g. Still it is at more then 90%levels.
    I ran this query to see which session is using maximum undo
    SELECT a.sid, b.name, a.value
    FROM v$sesstat a, v$statname b
    WHERE a.statistic# = b.statistic#
    AND a.statistic# = 176
    ORDER BY a.value DESC
    From this i found the session which is using max undo.
    When i query this sid from v$session i see this is inactive
    my undo retention is set to 9000 and undo management is auto
    >
    With an UNDO_RETENTION of 2.5 hours set, I am not surprised that you use up to (or even more than) 5g space in the UNDO tablespace! I would even call that moderate.
    What is your concern? If you don't have the space for your UNDO tablespace, lower UNDO_RETENTION accordingly. Notice that UNDO_RETENTION is the wish to preserve before images for that long time even if their transaction did already commit. Why have you set it to that (relatively high) value of 2.5 hours?
    Kind regards
    Uwe
    http://uhesse.wordpress.com

  • Dropping Undo Tablespace

    Hi,
    I am running Oracle 9.2 on Solaris. I have Automatic undo management turned on and have a Undo tablespace by name UNDOTBS. It has a single datafile and has AUTOEXTEND feature turned on. My UNDO_RETENTION was set to 4 hours.
    Presently, the size of UNDOTBS has grown to around 40G and has filled up the file system in which it resides. I need to clean up the file system. In order to do this, I followed the below procedure.
    SQL> create undo tablespace UNDOTBS1 datafile '/u04/oradata/proddb/undo_00.dbf' size 1024M autoextend off;
    SQ> alter system set undo_tablespace=undotbs1 scope=both;
    SQL> alter system set undo_retention=3600 scope=both;
    Now, i checked the alert log and it is offlining all the UNDO segments of the first undo tablespace UNDOTBS. It is taking time and has been more than 1.5 hours. I have a couple of questions here,
    1. As i have issued "alter system undo_tablespace=undotbs1 scope=both", all the new transactions will use the new UNDOTBS1. No new transactions will be using the first undo tablespace UNDOTBS right?
    2. Since, i have issued "alter system undo_retention=3600 scope=both", all the transactions in first undo tablespace UNDOTBS will be rolled back after 2 hours, no matter if it is commited or not. After this period, i am safe to drop the first undo tablespace using "drop tablespace UNDOTBS including contents and datafiles;". Did i get it right?
    Any information will be of a great help.
    THanks,
    Harris.

    Hi,
    Thank you all for the replies. It has been two days since i switched the undo_tablespace to use the new tablespace(undotbs1) but my alert log is still being flooded with " Undo tablespace 1 moved to pending switch out state". I tried the following to see if there are any rows returne from the above query and it did 3 rows, showing some undo segments with the following output
    SQL> select a.name, b.status from v$rollname a, v$rollstat b where a.name in (select segment_name from dba_segments where tablespace_name='UNDOTBS') and a.usn=b.usn;
    Name Status
    _SYSSMU15$      UNKNOWN
    _SYSSMU33$      UNKNOWN
    _SYSSMU9$        PENDING OFFLINE
    I have seen gone through the metalink id: 341372.1 that speaks about this SWITCH-OUT state. How can i make sure what old transactions are still using the Undo segments in first undo tablespace and how can i go about killing them. Could anyone please let me know that i could use the following queries to find the correct sessions that are using the Old Undo tablespace.
    SQL> select ADDR, XIDUSN,STATUS, START_TIME from v$transaction;
    SQL> SELECT
    a.usn,
    a.name,
    b.status,
    c.tablespace_name,
    d.addr,
    e.sid,
    e.serial#,
    e.username,
    e.program,
    e.machine,
    e.osuser
    FROM
    v$rollname a,
    v$rollstat b,
    dba_rollback_segs c,
    v$transaction d,
    v$session e
    WHERE
    a.usn=b.usn AND
    a.name=c.segment_name AND
    a.usn=d.xidusn AND
    d.addr=e.taddr AND
    b.status='PENDING OFFLINE';
    Just wanted to make sure that the second query lists the PENDING OFFLINE segments of the first tablespace right?
    This is a prod. box, so wanted to confirm with you guys before proceeding.
    Thanks,
    Harris.

  • Undo tablespace growing without reusing space

    Hi,
    I'm running an Oracle9i database on Solaris. I am using the automatic undo management and I have one undo tablespace. The UNDO_RETENTION value is 900. I have created the undo tablespace this way (clause in create database statement):
    UNDO TABLESPACE "UNDOTBS1" DATAFILE '/u04/oracle/oradata/my_dbname/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
    The undo tablespace datafile is now close to 3G. I have other servers running the same setup, and their undo datafile size is still 200M. There is currently no active transaction in the database. Any idea why this is happening? Is there any tables I can check for clues?
    Many thanks,
    Gloria

    Should Oracle automatically shrink the undo tablespace (datafile) when it is not needed anymore? Say at one point the database really needs 3G of undo tablespace, but afterwards only 10M is needed, would the datafile be 'shrunk' back?
    Also, how can I check if the database really needed the 3G of undo tablespace at one point? (I guess it's checking the level of activities in the database, but how do I do that for past data?)
    I'm trying to decide whether the undo tablespace really grew due to a need at some point or is it a case of Bug 2660394 (documented in metalink note271119.1). The bug basically says that "An auto extensible undo tablespace MAY grow before reusing expired extents leading to more space use than actually needed".

  • Undo Tablespace queries

    Hi All,
    I am bit confused with reading about the undo table space. so i need some clarification
    1. There are 2 undo tablespace in our application. Could someone explain how the 2 undo tablespace works? I didn't find any details about this.
    2. Both the undo tablespace is 100% utilized. Where the the new transaction will go? Will new transaction force the used blocks to be expired if needed?
    3. What should be the ideal size of undo tablespace with respect to the total storage size?
    4. is Archive log related to undotable space? if yes then When the archive logs get generated?
    Thanks

    1. In an RAC database, each Instance has to have it's own Undo Tablespace.
    In a non-RAC (single instance) database, only one Undo Tablespace may be active at any time. The other Undo Tablespace would be inactive but can be switched to with an ALTER SYSTEM SET UNDO_TABLESPACE command.
    2. Even if an Undo Tablespace is "100% used" Oracle can expire (and even drop) old extents and segments that are no longer needed by the Undo_Retention value. Thus, undo data for older transactions that have committed (more than Undo_Retention period has elapsed since the commit) will be overwritten.
    3. There's no "ideal size". Undo sizing is based on Transaction volumes, fluctuations in transaction volumes, query patterns etc.
    4. No, there is no direct relation between the two. However, all Undo that is generated also is written to Redo -- i.e. Redo captures Undo as well as it captures changes to Tables, Indexes etc.
    I suggest that you read the Oracle Concepts documentation at
    http://download.oracle.com/docs/cd/E11882_01/server.112/e16508/toc.htm
    Hemant K Chitale
    http://hemantoracledba.blogspot.com

  • How to protect UNDO TABLESPACE in 9iR2

    We can put REDO LOGs onto different disks by the means of multiplexing, so that even though one datafile is corrupted, the whole system would still be operational. But UNDO TABLESPACE doesn't provide such a mechanism. If the datafile of the active UNDO TABLESPACE is corrupted, it's dead.
    I don't think a system would risk its availability on the single failure of the UNDO TABLESPACE. So there must be some tricks to circumvent this problem. Can anyone tell me that?
    Thanks!

    951368 wrote:
    I am sorry... I should have been more clear...
    The issue i have is : My primary is a 3 node RAC and i created the same 3 node physical standby, now we had a 4th node at our standby, standby allowed me to add all the required cluster parameteres like instance#,thread# for 4th node, but i was stopped at creating a undo tablespace for the 4th node. What is the procedure? do i need to create it at primary or is there a way i can directly create at standby?
    ThanksHi,
    So you have 3 nodes primary and wanted to add 4th node on standby?
    Create the 4th undo tablespace in primary using
    sql > create undo tablespace "undotbs4" datafile 'xxxxx' size xxxx;
    The primary won't touch this undo as none of the instances should pointing to this new undo.
    In the standby on 4th node define 'undo_tablespace' to undotbs4.
    Cheers

  • ORA-30036: unable to extend segment by 8 in undo tablespace 'APPS_UNDOTS1'

    Hi,
    A user who is trying to run a report on an EBS system, gets the following error from the application end:
    java.sql.SQLException: ORA-30036: unable to extend segment by 8 in undo tablespace 'APPS_UNDOTS1'
    I would have expected to see this ORA error in the Oracle database alert log as well, however this is not the case.
    I increased the size of the APPS_UNDOTS1 tablespace from 1700mb with autoextend to max 3000mb, however it seems that the tablespace is not extending beyond it's original size of 1700mb. In TOAD, I see that the tablespace has not grown even after the user ran the report again. Any idea why? Is there perhaps something that needs to be adjusted on the application side as well?
    Thanks.

    Hi,
    The tablespace is not extending and this error is not written to the alert log, but I found a trace file with the following information....
    ORA-30036 happens when trying to extend undo segment SYSSMU91258636580$ (usn=9) by 8 blocks
    Reason: Fail to Steal
    Current undo tablespace APPS_UNDOTS1 (tsn=1)
    undo tablespace current size 218240 blks, maxsize 218240 blks, fixed sized
    Undo Retention (reactive): 936, Parameter Undo Retention: 900, Tuned Undo Retention: 936, High threshold Undo Retention: -2
    Retention Guarantee FALSE
    Does anyone know how to solve this "Fail to Steal" problem?
    Btw, the query SELECT DISTINCT STATUS, SUM(BYTES), COUNT(*) FROM DBA_UNDO_EXTENTS GROUP BY STATUS; returns about 55 expired extents, therefore there are still available extents to "steal" from. So why does this fail?

Maybe you are looking for

  • ORA-00607: Internal error occurred while making a change to a data block

    hi i hv use testing purpose oracle 10 Xe in unix but when today i hv connect database following error occured SQL> startup ORACLE instance started. Total System Global Area 83886080 bytes Fixed Size 1257284 bytes Variable Size 75497660 bytes Database

  • Speakers on monitor do not work with Win 8.1

    Yesterday I upgraded from Win X - SP 3 (discontinued by Microsoft)  to Win 8.1.  I spent the entire day with a Microsoft technition on-line to figure out how all this works.  One thing he could not get to work was the speakers on my monitor (HP vs 19

  • Lightroom watermarks not showing up in Windows explorer.

    Quick question for everybody. I imagine there's an easy solution for it, I just haven't been able to figure it out. The company I work for needs to manage and watermark many different types of photos (perfect for Lightroom.)  The only problem is, whe

  • Error in Sales upload using BAPI

    Dear Friends I am facing the problem in the sales upload program. it gives the return type is 'E' message is "Sales document was not change" Help me to solve this problem. Thanks in advance. The program is REPORT  zsalupd2. DATA: header LIKE bapisdhd

  • Reset Check Payment Clearing

    Hello All, Vendor Invoice is cleared with Check payment, but it has exchange rate differences posted during clearing. User wants to reverse the invoice and posted a new invoice. I am unable to cancel the clearing using FBRA as exchange rate differenc