Extending undo tablespace

Hi everyone!
I used this sql to check the status of my tablespaces.
SELECT /* + RULE */  df.tablespace_name "Tablespace",
       df.bytes / (1024 * 1024) "Size (MB)",
       SUM(fs.bytes) / (1024 * 1024) "Free (MB)",
       Nvl(Round(SUM(fs.bytes) * 100 / df.bytes),1) "% Free",
       Round((df.bytes - SUM(fs.bytes)) * 100 / df.bytes) "% Used"
  FROM dba_free_space fs,
       (SELECT tablespace_name,SUM(bytes) bytes
          FROM dba_data_files
         GROUP BY tablespace_name) df
WHERE fs.tablespace_name (+)  = df.tablespace_name
GROUP BY df.tablespace_name,df.bytes
UNION ALL
SELECT /* + RULE */ df.tablespace_name tspace,
       fs.bytes / (1024 * 1024),
       SUM(df.bytes_free) / (1024 * 1024),
       Nvl(Round((SUM(fs.bytes) - df.bytes_used) * 100 / fs.bytes), 1),
       Round((SUM(fs.bytes) - df.bytes_free) * 100 / fs.bytes)
  FROM dba_temp_files fs,
       (SELECT tablespace_name,bytes_free,bytes_used
          FROM v$temp_space_header
         GROUP BY tablespace_name,bytes_free,bytes_used) df
WHERE fs.tablespace_name (+)  = df.tablespace_name
GROUP BY df.tablespace_name,fs.bytes,df.bytes_free,df.bytes_used
ORDER BY 4 DESC;It shows that my undo tablespace has only 3% space left.
I just executed this SQL command but still the output is the same.
SQL> alter database datafile 'c:\ORACLE\DATA\PRODUCTION\DATAFILE\O1_MF_UNDO.DBF' autoextend on maxsize 50M;
Database altered.I mistakenly thought that the file's existing size is less than 50M.
But then realised the unused (3%) is 50M.
How should I increase the file's size now.
Please guide me.
Will the command I issued have a negative impact?
Thanks in advance.
Nith

user645399 wrote:
Hi everyone!
I used this sql to check the status of my tablespaces.
<snip>
It shows that my undo tablespace has only 3% space left.Which is not a problem of itself. Were you seeing an errors due to lack of space in the undo TS? Do you understand how the undo TS uses - and reuses - space?
>
I just executed this SQL command but still the output is the same.
SQL> alter database datafile 'c:\ORACLE\DATA\PRODUCTION\DATAFILE\O1_MF_UNDO.DBF' autoextend on maxsize 50M;
Database altered.
And of course the output is the same. Modifying the autoextend allocation of a file doesn't change the size of anything. It simply allows the file to grow if and when it becomes necessary. And with 3% still available, it is not necessary. And it won't become necessary until some DML causes that 3% to be exhausted.
I mistakenly thought that the file's existing size is less than 50M.
But then realised the unused (3%) is 50M.
How should I increase the file's size now.
Please guide me.
Will the command I issued have a negative impact?
Thanks in advance.
Nith

Similar Messages

  • ORA-30036: unable to extend segment, our UNDO TABLESPACE grow to 500 GB

    Our client report that when they run their batch job the error "ORA-30036: unable to extend segment..." came into their log file.
    I have checked with alert log but nothing there. We use Oracle 11g on Solaris 10 SPARC.
    Any suggestion ?
    Thanks & Regards

    Refer to
    Troubleshooting ORA-30036 - Unable To Extend Undo Tablespace [ID 460481.1]
    ORA-30036: unable to extend segment by <N> in undo tablespace '<tname>' [ID 271664.1]

  • Doubt regarding ORA-30036: unable to extend segment by 8 in undo tablespace

    I am using 11g Release 1 Database .
    I have to analyze the performance of two tables of different designs which serve the same purpose and come up with the design which is efficient .
    SQL> desc staging_dict
    Name                                      Null?    Type
    SNO                                                NUMBER
    CODE_FRAGMENTS                                     CLOB
    CODE_FRAGMENTS_U                                   CLOB
    CODE_FRAGMENTS_D                                   CLOB
    CODE_FRAGMENTS_DO                                  CLOB
    SQL> desc staging_dict1
    Name                                      Null?    Type
    SNO                                                NUMBER
    CODE_FRAGMENTS                                     CLOB
    CODE_FRAGMENTS_UD                                  CLOB
    CODE_TYPE                                          VARCHAR2(5 CHAR)Initially I tried inserting a few thousand records into both the tables . Then I did some conversion on one column and I populate the result on other column of the same table . So I update the table in bulk mode and I commit for every thousand records .
    I have a undo tablespace of 2G with undo_retention=900 , retention guratantee is not set for the undo tablespace .
    When I tried the conversion and update on the first table (STAGING_DICT) it took more time for around 2500 records compared to other table and when I increased the number of records to 10000 it threw an error
    ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
    But I didn't come across this error when I tried the conversion and update on the table for the same 2500 records (STAGING_DICT1) and it was also 10 times faster .
    My doubt is does the error ORA-30036 occur because it is saving the undo image of all the four clob columns though I am doing conversion on one column and updating the other column (using only two columns in the update and only one column is affected by update command) ?
    Also how is that having less CLOB rows prove more effective by adding one more VARCHAR column which differentiates the code_frament type in the STAGING_DICT1 table than having it as more CLOB columns as in STAGING_DICT table ?

    Don't you think the error OP reported is kind of weird?
    Because as you said, Oracle stores "undo" of lob in user tablespace not undo tablespace if the lob is stored out-of-line.
    1. If the size of lob was small, small size of undo would be stored into undo tablespace,
    and OP would'nt have undo tablespace shortage problem.
    (How does small lob flood undo tablespace?)
    2. If the size of lob was big, OP would have 01555 error on user tablespace not undo tablespace shortage error.
    So, i think there are 2 theories that can explain this abnormality.
    1. OP hit the bug of massive undo generation.
    2. OP is using securefile which is 11g new feature.
    Oracle documents says that undo for securefile lob is stored in "undo" tablespace, not user tablespace.
    But unfortunately, i'm not sture about this coz i didn't try it myself

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

  • 0RA-30036: Unable to extend segment by 8 in Undo tablespace

    Hi,
    I am getting this error " 0RA-30036: Unable to extend segment by 8 in Undo tablespace ". Please Advise me how i can solve this error. Just to let u know that I don't have extra space in my Partition at OS level to increase the size of Undo tablespace. Please Advise what is the alternate option to solve this problem.
    I know that I can't do coalesce on Undo tablespace any other way.
    Regards

    Do frecuent commits.
    whats the size of your temp tablespace.
    you can try reducing its size and giving to undo / rollback.
    try droping unused indexes.
    But man..... strart planning your space and make an annual budget for disks.

  • Unable to extend segment by 8 in undo tablespace 'UNDOTBS1'

    Hi All,
    I have enabled the Oracle flashback data archive.
    Undo tbs size is unlimited. Whenevr i enable FBDA i am getting the below error. when i disable this feature the error is not coming.
    My Oracle version is 11.0.2.0
    ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'
    ORA-02002: error while writing to audit trail
    ORA-00604: error occurred at recursive SQL level 1
    ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'
    ; nested exception is java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
    can anyone help me to solve the issue would be very much helpful.
    thanks
    Mohan

    ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'
    30036, 00000, "unable to extend segment by %s in undo tablespace '%s'"
    // *Cause:   the specified undo tablespace has no more space available.
    // *Action:  Add more space to the undo tablespace before retrying
    //           the operation. An alternative is to wait until active
    //           transactions to commit.

  • Unable to extend segment by 8 in undo tablespace 'UNDOTBS1' error ?

    I have added a new column to one of my tables,and I am migrating data to fill all the existing rows for this newly added column; but while executing the migration script I get the following error -
    Error:ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'
    Of whatever i searched on the net this error points to lack of space for the undo segment of oracle. is it possible to extend this space dynamically?
    Any pointers to help me resolve the problem would be appreciated.
    Thanks.

    <snip>
    How have you written your migration scripts? Does it include commits at suitable points in the script, or is it one large commit at the end?
    </snip>
    Actually, that is the case too. I have a one large commit at the end. To avoid this and introduce commits at some decent regular intervals, i will have to modify my script. I am trying to see if there is any other configuration solution possible :)
    Thanks

  • OEM Upgrade - ORA-30036: unable to extend segment by 8 in undo tablespace

    Oem upgrade Installer failed on repository in upgrading to grid Control 10.2.0.5
    757921: ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
    757922: ORA-06512: at line 117
    I added two datafiles to fix this error so I thought I had enough space now - installer failed when upgrading the repository with ORA-30036 unable to extend segment by 8 in undo tablespace 'UNDOTBS', When I hit retry it keeps failing on the same error. The upgrade is in STATUS -3. Could I run this as sysman and then go back to the installer screen and retry again.
    execute emd_maintenance.set_comp_status('_
    UPGRADE_', EMD_MAINTENANCE.G_STATUS_
    CONFIGURED_READY);
    If you have any tips going forward pleases let me know.,
    Joseph

    Has anyone encountered this error: doing re-installation on OEM upgrade. I can seem to find anything on metallink. There is no error code
    txnRemoveConfirmation .
    Joseph

  • ORA-30036: unable to extend segment by string in undo tablespace "string"

    Hi hussein/helios,
    EBS 11i
    RHEL 4.6
    Our users in Inventory - Order Management Module , tried to enter and save transactions, but they encounter this ORA-30036 error:
    Unable to extend segment by 8 in undo tablespace 'APPS_UNDOTS1'
    in Package OE_ORDER_WF_UTIL Procedure Start_FlowIn your experience how do you tune this package for an appropriate UNDO? What is the appropriate size for my UNDO? Do I allow it to
    to autoextend? or just allocate enough space.
    Thanks a lot,
    Ms K

    user_unlimited wrote:
    Hi new2,
    I don't get it clearly :( . I guess oracle already tuned these apps tablespaces extents. I just want to know if its >ok to increase it.Not all tablespace i found is tuned.
    Do you have a productions EBS 11i? EBS R12 RUP 6 DB 10.2.0.0
    what is the size of your UNDO?4GB
    >
    >
    ThanksUNDO Tablespaces should contain between 1024 and 4096 extents
    To check for UNDO and TEMP tablespaces that do not obey the extent size rules you can run the following query:
    select tablespace_name, initial_extent, next_extent, pct_increase, min_extlen
    from dba_tablespaces t,
    (select tablespace_name tbspc,
    sum(bytes) tbspc_sz,
    count(*) num_files,
    sum(bytes)/sum(blocks) blk_sz
    from dba_data_files
    group by tablespace_name) f
    where
    ( initial_extent < (tbspc_sz - blk_sz * num_files) / 4096
    or initial_extent > (tbspc_sz - blk_sz * num_files) / 1024
    or next_extent != initial_extent
    or pct_increase != 0
    or min_extlen != initial_extent)
    and tablespace_name = tbspc
    and tablespace_name != 'SYSTEM'
    and ( contents = 'TEMPORARY'
    or tablespace_name in (select tablespace_name from dba_rollback_segs));My cases i found iitial extent 65536 and min_exlen 65536
    check with this query then decide what will u do...
    HTH

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

    Hi,
    I am running a Pl/Sql block and it is a batch process which will run once a day.
    Yesterday, i gave me this error:
    ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS2'
    What should i do?
    Can any one help me on this.
    thanks in advance,
    Bala

    Hi
    SQL>SHOW PARAMETER UNDO_RETENTION
    NAME TYPE VALUE
    undo_retention integer 900
    Rgds
    Adnan

  • 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

  • Unable to extend segment by 8 in undo tablespace

    Oracle Enterprise 9.0.2.5.0
    Compaq Tru64 5.1A
    I tried to drop a column from a large tablespace. The command fails with the error that it ran out of space in my undo tablespace.
    I found my undo retention is 10,800 sec (3 hours). The tablespace is currently 1,024 MB. I calculated the needed undo tablespace to be 10 GB. Is a 10 GB undo tablespace unreasonable? If my OS limits my undo tablespace to less than the 10 GB, may I reduce my retention temporarily till my "ALTER TABLE" completes? I cannot autoextend the tablespace.
    Thank you in advance for any advice,
    Carolyn

    or, simply use :
    SQL> desc emp
    Name                                                  Null?    Type
    EMPNO                                                 NOT NULL NUMBER(4)
    ENAME                                                          VARCHAR2(10)
    JOB                                                            VARCHAR2(9)
    MGR                                                            NUMBER(4)
    HIREDATE                                                       DATE
    SALARY                                                         NUMBER(7,2)
    COMM                                                           NUMBER(7,2)
    DEPTNO                                                         NUMBER(2)
    SQL> alter table emp set unused column comm ;
    Table altered.
    SQL> desc emp
    Name                                                  Null?    Type
    EMPNO                                                 NOT NULL NUMBER(4)
    ENAME                                                          VARCHAR2(10)
    JOB                                                            VARCHAR2(9)
    MGR                                                            NUMBER(4)
    HIREDATE                                                       DATE
    SALARY                                                         NUMBER(7,2)
    DEPTNO                                                         NUMBER(2)
    SQL>Then at a later time, when there is low activity or more space available, do this:
    SQL> alter table emp drop unused columns ;
    Table altered.
    SQL>to physically remove the column from the table.

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

    Hello,
    I have an OWB Mapping (which translates into a MERGE query) that often fails with the above error. I wanted to have more information on UNDO. What uses most UNDO?
    Thanks.

    Dear mugunthan,
    One little, tiny correction that i want to make. I can get what you wanted to say when you said "increase the tablespace". Normally we are not increasing the size of the tablespace, we are increasing the size of the "datafiles" in that tablespace. That is tricky and how words can change everything i know but just for the information :)
    I think the OP's undo tablespace size is 100% full and the auto extensible ability is disabled. He needs to either increase the size of the datafile in the undo tablespace slightly more or enable the auto extensible of one more datafiles (if exists) to a particular new and more bigger size.
    Regards.
    Ogan

  • Regarding Maxsize of Undo Tablespace

    Dear expetrs
    While executing a procedure i got error.
    Error In Insertion..ORA-30036: unable to extend segment by 16384 in undo tablesp
    ace 'UNDOTBS1'
    then i increase the size of the Undo Tablespace
    then again i got error.
    ORA-01144: File size (7680000 blocks) exceeds maximum of 4194303 blocks
    plz give me answer as soon as possible.
    thnaks.

    1) resize your datafile to 4194303 * db_block_size
    alter database datafile < path/filename > resize <4194303 * db_block_size> ;
    you find db_block_size by:
    sqlplus /nolog
    SQL> connect / as sysdba
    SQL> show parameter db_block_size
    or by simply have a look in the pfile (init<SID>.ora) in $ORACLE_HOME/dbs
    2) add another file to the undo tablespace:
    SQL>alter tablespace undotbs1 add datafile <path/filename> size <n> M;
    a tablespace may have up to 1022 datafiles.
    hope this helps
    roman

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

Maybe you are looking for