Undo Tablespace - newbie question

Q1. Is an Undo Tablespace mandatory in a database ? I thought the only mandatories were SYSTEM, SYSAUX and TEMP ?
Q2. What happens if you do not have an Undo Tablespace ?
Q2. How does an Undo Tablespace relate to Undo / Rollback Segments in a database ?

>
Just to give simple, one-liner replies though its all covered in the doc link given by Helios,
Q1. Is an Undo Tablespace mandatory in a database ? I thought the only mandatories were SYSTEM, SYSAUX and TEMP ?Yes, it is a mandatory tablespace loss of which would be requiring you to do a closed database recovery.
Q2. What happens if you do not have an Undo Tablespace ?The system tablespace's Undo segment would be used. But that's a bad idea and you should have one .
Q2. How does an Undo Tablespace relate to Undo / Rollback Segments in a database ?Because Undo segments are no where else but within the Undo tablespace only.
HTH
Aman....

Similar Messages

  • Question about Undo Tablespace?

    Hello;
    The size requirement of the undo tablespace is related to the number and size of transactions that occur on the database.But I dont need to query any of these transaction for a schema or table by using flashback so is there a way of disabling writing any transactions on a table or schema to undo tablespace ?
    Edited by: Ecimen on 04.Mar.2013 03:50
    Edited by: Ecimen on 04.Mar.2013 03:51

    Rob_J wrote:
    Hi,
    No, that's not what I meant. What I meant was that if you say your logging tables are creating a lot of UNDO it must mean that you are writing/updating/deleting a lot of information from them. I was just throwing out the thought that if this is the cause of the issue, can you reduce the amount of data you write to these tables? In other words, do you need all this logging data? It's a question for the business and/or designers of your application to answer.
    RobHello Rob;
    i got it now , and yes we need to logging all this data because its production database occuring many transactions always...
    Edited by: Ecimen on 04.Mar.2013 06:28
    Edited by: Ecimen on 04.Mar.2013 06:31

  • Find undo tablespace  assignment in RAC

    Hi Experts,
    We have 6 nodes 10GR2 rac database. It seems that does not assign each instance order with undo tbs.
    How can I find each instance assigned undo tablespace?
    Thanks very much!
    JIm

    Handle:      user589812
    Status Level:      Newbie
    Registered:      Aug 13, 2007
    Total Posts:      829
    Total Questions:      366 (338 unresolved)
    so many questions & so few answers.
    also Do i have a way to drop a datafile in undo tablesapce?UNDO is no different than any other tablespace.

  • Problem with UNDO tablespace

    Hi guys.
    Our database has 50GB of undo tablespace. I decided to create a second undo tablespace and switch to the new one. Since doing that yesterday, the size of the old undo is 49GB (was thinking that the values will drop to zero) and the new tablespace keeps increasing in size! Its size now is about 20GB. I do have the following question.
    a) If I restart the database, it the value of the old undo going to fall to zero?
    b) undo_retention=86400. Setting this value to a lesser value say 800seconds, it is going to act the performance of the database? Is it going to release the space on the old undo?
    Thanks and any help is appreciated.
    David

    The undo tablespace will not automatically shrink size, since you have a new undo tablespace in place. You can drop the old one if you don't plan to use it.
    Set lower undo_retention will certainly help to contain the undo space usage. However you should query v$undostat and v$rollstat to estimate the amount of undo space required for the current workload then size the undo tablespace accordingly. Turn off the auto extend on undo tablespace.

  • Undo tablespace issue

    Hello,
    I have a question regarding undo tablespace utilization. Currently there are no active transactions, all previous transactions have been commited, there is only one user session on my test database, undo retention is set to 900. I am trying to drop the old undo tablespace (I have created a new one, and switched to it - alter system undo_tablespace= new_undo;) but I get ORA-30013: undo tablespace 'old_undo' is currently in use.
    I have bounced the database, but made no progress. dba_undo_extents stiil have active segments from the old_undo and dba_rollback_segs indicate there are two online segments from the old_undo.
    Why is the old undo being used? WHo is using it?
    Thank you and
    Rgds

    SQL> SELECT * FROM V$VERSION;
    BANNER
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    PL/SQL Release 11.2.0.1.0 - Production
    CORE 11.2.0.1.0 Production
    TNS for Linux: Version 11.2.0.1.0 - Production
    NLSRTL Version 11.2.0.1.0 - Production
    SQL> select distinct status, segment_name, tablespace_name from dba_undo_extents where status='ACTIVE';
    STATUS SEGMENT_NAME TABLESPACE_NAME
    ACTIVE SYSSMU112241730627$ UNDOTBS8
    ACTIVE SYSSMU161513093487$ UNDOTBS8
    SQL> show parameter undo
    NAME TYPE VALUE
    undo_management string AUTO
    undo_retention integer 900
    undo_tablespace string UNDOTBS11
    Thanks!

  • 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 space usage

    I am sorry If someone asked this question before
    Oracle version : 10.2.0.3.0
    OS : Linux
    Tablespace Name           Tablespace Size (in MB)       Used (in MB)       Free (in MB) Pct. Used
    UNDOTBS1                                    2,000              1,826                174        91
    SELECT tablespace_name TSPACE, status, COUNT(*) AS Segments, sum(bytes)/1024/1024 as "TOTAL_SIZE(MB)"
    FROM dba_undo_extents
    GROUP BY tablespace_name, status
    SQL> SQL>   2    3    4
    TSPACE               STATUS                 SEGMENTS TOTAL_SIZE(MB)
    UNDOTBS1             EXPIRED                     464      1825.9375My all undo segments are expired but undo tablespace shows as 91 % used. Is there any workaround for avoiding this?
    Thanks
    Nisanth V.S

    This could be a normal situation: see http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:676925300346249247#711734500346983254. A 2 GB undo tablespace is a small one and I would not worry about having a lot of expired undo segments.
    You can also use V$UNDOSTAT to check undo tablespace usage for the last 7 days.

  • Second Undo Tablespace in Oracle10g v.2...

    Hi ,
    Having connected as sys i created another undo tablespace ... except for the first one created by default....
    SQL> CREATE UNDO TABLESPACE INFO_UNDO_TBL DATAFILE 'C:\oracle\product\10.2.0\oradata\INFO\INFO_UNDO_DFL.ORA' SIZE 10M;
    Tablespace createdI have two questions...
    1) When i issue the command:
    SQL> SHOW PARAMETER UNDO_TABLESPACE;
    NAME                                 TYPE        VALUE
    undo_tablespace                      string      UNDOTBS1It does not refer the new undo tablespace..... I suppose that i have to write:
    sql> alter system set undo_tablespace=UNDOTBS1,INFO_UNDO_TBL scope =BOTH... or something like this....Is that correct....??????
    2)The Oracle Doc (Concepts) points out.....
    "In automatic undo
    management mode, each Oracle instance is assigned one (and only one) undo
    tablespace."
    That means i cannot issue the command "alter system set undo_tablespace=UNDOTBS1,INFO_UNDO_TBL" (if it is correct) since the default undo tablespace runs in AUTO mode.....????
    SQL> SHOW PARAMETER UNDO_MANAGEMENT;
    NAME                                 TYPE        VALUE
    undo_management                      string      AUTOMany thanks....
    Sim

    Hi ,
    I dont think you can have two undo tablespaces assigned for a database.This is what you get in the alert log files even if you are deceived by the statement "System Altered"
    SQL> alter system set undo_tablespace='UNDOTBS1,UNDOTBS2' scope=spfile;
    System altered.
    SQL> sho parameter undo
    NAME TYPE VALUE
    undo_management string AUTO
    undo_retention integer 900
    undo_tablespace string UNDOTBS1,UNDOTBS2
    Alert log extract..............
    Errors in file j:\oracle\product\10.2.0\admin\orcl10g\udump\orcl10g_ora_1724.trc:
    ORA-30012: undo tablespace 'UNDOTBS1,UNDOTBS2' does not exist or of wrong type
    Errors in file j:\oracle\product\10.2.0\admin\orcl10g\bdump\orcl10g_reco_1808.trc:
    ORA-30012: Message 30012 not found; No message file for product=RDBMS, facility=ORA
    Tue Oct 02 15:37:41 2007
    Errors in file j:\oracle\product\10.2.0\admin\orcl10g\bdump\orcl10g_smon_1760.trc:
    ORA-30012: Message 30012 not found; No message file for product=RDBMS, facility=ORA
    Instance terminated by USER, pid = 1724
    ORA-1092 signalled during: alter database open...
    Regards,
    -Praveen
    http://myracle.wordpress.com

  • UNDO tablespace initial dimension

    Hi, I have installed Oracle XE Beta 2 on a Windows XP Professional pc: the percentage of the UNDO tablespace is 94,64%, and I have done no relevant operation on the db, is this ok?
    Thanks,
    Gianluca

    Sorry. I mis-read the question. You're looking in HTML DB and your undo is at 94.64%?
    When you say "no relevant operation", do you mean since creation? It sounds like you've done something. The 94.64% could still be completely normal but shouldn't be on a fresh install
    Post the stats from that htmldb screen, i.e. user, undo and system tablespace sizes (used and free).
    Thanks,
    LewisC
    http://blogs.ittoolbox.com/oracle/guide/

  • Loss of Undo tablespace

    Hello Friends
    I am confuse about a snario, please clear it:
    What if we loss undo tablespace(data files), and all files remain safe(database in archive log 9i) and the tablespace have some active transactions at the time of failure. My question is that how oracle will recover ? and where the undo data for uncommited transaction will come from at the time of recovery.
    Sunil Kumar

    You can create new undo tablespace , though, is that there cannot be any active transactions in the Undo segments of the tablespace when it is time to actually drop it. In the case of data file corruption, uncommitted transactions in the database that have data in Undo segments can be extremely troublesome because the existence of any uncommitted transactions will lock the Undo segments holding the data so that they cannot be dropped. This will be evidenced by an "ORA-01548" error if this is attempted. This error, in turn, prevents the drop and recreation of the Undo tablespace, and thus prevents the successful recovery of the database.
    To overcome this problem, the transaction tables of the Undo segments can be traced to provide details on transactions that Oracle is trying to recover via rollback and these traces will also identify the objects that Oracle is trying to apply the undo to. Oracle Doc ID: 94114.1 may be referenced to set up a trace on the database startup so that the actual transactions that are locking the Undo segments can be identified and dropped. Dropping objects that contain uncommitted transactions that are holding locks on Undo segments does entail data loss, and the amount of loss depends on how much uncommitted data was in the Undo segments at the point of failure.
    Hope this hepls...

  • Undo tablespace keeps growing

    Hello,
    my undotbs is growing 14g (although i my undotbs actul size is 9g) I try to resize datafiles, but
    this may not work.
    So, i am assuming to perform this task
    >
    - Create a new undo tablespace as :
    SQL> create undo tablespace UNDOTBS2 datafile '<complete file path>' size <smaller size>;
    - Change parameter UNDO_TABLESPACE
    SQL> alter system set UNDO_TABLESPACE=UNDOTBS2;
    - Drop UNDOTBS1
    SQL> drop tablespace UNDOTBS1 including contents and datafiles;>
    but my question is , is it worthy to delete the undotbs1 whose having alot of data and if i deleted
    this (undotablespace) data ,i will not able to recover it thoroughly?
    db_version:10.2.0(linux)

    sunny kichlooIf your concern is regarding how to resize Refer this thread
    >
    i have already try this but it still growing and day-today we are running large transaction on our db.
    marcopb      Try to investigate why your undo tablespace is growing... and think about why your next undo tablespace won't grow as the previous...
    >
    our db size is 60g and we are running on heavy transection on it (everday)

  • Temp and undo tablespace

    Once we created a new temporary or undo tablespace we can make then the default one.My question is regardless of how many undotablespaces or temporary tablespaces the database has the only one used are the assigned as the defualt.Is this right?
    Thanks in advnance

    Hi, if you user AUM (automatic undo )you can have only one UNDO TS per instance, set by UNDO_TABLESPACE parameters.
    For TEMPORARY tablespace you can have several, each user is assigne an TEMPORAY TS by create user....TEMPORARY TABLESPACE name or modified by alter user.

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

    Hi experts,
    I'm getting this error
    "ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'"
    will you please tell me the reason and suggest me, what to do.
    OS - SunOS 5.10
    oracle - 10.2.0.3.0

    Hallo.
    I have this problem 30036 after this request (ver. 10.2):
    DELETE FROM AUDITDBA.SEOSDATA where COMPUTERNAME ='xxxxx' AND TIMSTAMP >= '18-03-2011'    (! number of rows is less as 2 000 000)
    I tried do this:
    ALTER SYSTEM SET UNDO_RETENTION = 5;
    But after next action "DELETE" again problem 30036..
    Here is a "space status" from the system:
    TABLESPACE_NAME VOLNE_MIESTO
    CA_AUDIT 3714,1875 MB
    SYSAUX 42,1875 MB
    SYSTEM 5,25 MB
    UNDO_TEMP 7998,0625 MB
    USERS 999,125 MB
    It's clear for me that datafile UNDOTBS is small but I have same questions:
    1. What You recommend - use autoextend on for the UNDOTBS datafile or extend it manualy?
    2. What size You recommend for the UNDOTBS when I have DB size cca 350 GB, into DB incomming cca 50 events (rows) per second and I need remove from this DB aproximetly 1/2 numbers of rows (old data)
    3. Recommend me best way how I can remove old data from DB without problems as "30036"...
    Thank You in advance
    Peter

  • If I have two undo tablespace, under what situation oracle will use another

    if I have two undo tablespaces, under what situation oracle will use another
    one is default undo tablespace, another is created manually
    will it use it when the default one is full?
    it seem like to be it won't use the second undo tablespace.
    thanks
    Edited by: user11402556 on Jul 3, 2010 2:18 PM

    You can have two Undo Tablespaces created with the CREATE UNDO TABLESPACE syntax.
    However, the current database instance will use the Undo Tablespace specified by the instance level parameter undo_tablespace.
    When you want to switch the datafiles of an undo tablespace from, say, one mount point to another (or when you want to "resize" an undo tablespace that has grown very large for specific one-off / adhoc jobs), you would create another undo tablespace, reset the instance level parameter to the new undo tablespace and wait for a decent interval (e.g. at least undo_retention or autotuned undo retention) before dropping the old undo tablespace.
    So yours is not a hypothetical question. Having two undo tablespaces is a real-world practice -- but the two are concurrently present for only a short duration, while transactions and queries switch from one to the other.
    (In RAC, each database instance must have it's own Undo tablespace as well).
    Hemant K Chitale

  • Oracle DB : UNDO tablespace filled 99%

    Hi,
    That's not a problem (I hope) but just a question on Livecycle ES DataBase.
    The Undo tablespace set to 4Gb, always filled 99%.
    Is it normal ? is there preconized size for it ? Does we have to maintain it ...
    The LiveCycle configuration is :
    ES (1) version 8.2.1 SP3, Jboss
    Oracle 10g
    The server is running on Windows Server 2003 Ent OS.
    Thank you for your response !

    It very much depends on the tool used to determine the usage of the UNDO tablespace. Many tools do not take into account that the UNDO tablespace and the TEMP tablespace may seem to be full (have correctly formatted blocks) while still having a lot of functional space available inside of those blocks.
    In other words, if the tool calculates the usage in the same way as data tablespaces, it will be reporting the wrong value. Ideally, the UNDO tablespace will always be close to 100% full using traditional calculation.
    Assuming the tool is doing it's calculation correctly, the second thing to note is that UNDO is the core to Oracle Consistent Read mechanism. (Which is, in turn, the core to many of the Flashback techniques.) The UNDO data, which is created at transaction time, must be available after the transaction has committed if a consistent read or flashback is invoked. The more UNDO, the further back in 'time' you can flash back.
    So the correct way to tune the UNDO is to specify the amount of time you require UNDO to exist. And you verify that using the DBA_UNDO_EXTENTS view and the STATUS column. Totally free space in the undo occurs when the STATUS is EXPIRED. If you have no EXPIRED extents, they can not be reused (except in a pinch) and the system will allocate more space to the UNDO tablespace if possible.
    A great reference is the thread at http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:6894817116500
    I am curious - is 4GB UNDO really an issue?

Maybe you are looking for