Undo tablespace utilizes 100 %

hi,
We are using oracle 11.2.0.3.0 on solaris 10 sparc 64 bit. From last week we are facing an issue our undo tablespace got 100 % full , we have add the data files and increase the size upto 300 gb. But after some time it utilizes all the available space and cant release it.
Thanks

user11062519 wrote:
hi,
We are using oracle 11.2.0.3.0 on solaris 10 sparc 64 bit. From last week we are facing an issue our undo tablespace got 100 % full , we have add the data files and increase the size upto 300 gb. any long running batch jobs configured ?what is your undo retention period?
But after some time it utilizes all the available space and cant release it.space cannot release until unless active transaction ends.

Similar Messages

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

  • UNDO Tablespace size

    Hi,
    We have a production database with size 120GB (DB Version 11.1.0.6), And our UNDO Tablespace size is 30GB.
    For the past 4 days the UNDO tablespace utilization is more than 85%.
    We have disabled the AUTOEXTEND for the UNDO Tablespace.
    So the UNDO RETENTION is dynamically calculated by Oracle itself and the value now is
    TUNED_UNDORETENTION
    339183
    Please suggest how to fix this issue.
    Thanks !

    Hi,
    The UNDO Tablespace size is still increasing. We dont have flashnack enabled for our database.
    The database is 11.1.0.6 Standard Edition.
    TABLESPACE TOTAL_SIZE_IN_MB FREE_SPACE_IN_MB % FREE %USED
    UNDOTBS1 32152 4440 14 86.19
    USERS 123784 23120 19 81.32
    SYSTEM 1536 465 30 69.73
    SYSAUX 1024 449 44 56.15
    GGS_DATA 2048 1388 68 32.23
    We enabled AUTOEXTEND on for one of the datafiles in UNDO Tablespace.
    NAME TYPE VALUE
    undo_management string AUTO
    undo_retention integer 9000
    undo_tablespace string UNDOTBS1
    select to_char(begin_time, 'DD-MON-RR HH24:MI') begin_time,
    to_char(end_time, 'DD-MON-RR HH24:MI') end_time, tuned_undoretention
    from v$undostat order by end_time;
    BEGIN_TIME END_TIME TUNED_UNDORETENTION
    23-DEC-11 18:15 23-DEC-11 18:25 375077
    23-DEC-11 18:25 23-DEC-11 18:35 375678
    23-DEC-11 18:35 23-DEC-11 18:45 376278
    23-DEC-11 18:45 23-DEC-11 18:51 376578
    Please let me know how can i reduce the space consumed by UNDO Tablespace.

  • 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

  • ORA-30012: undo tablespace 'UNDOTBS' does not exist or of wrong type

    OS Version : AIX 6.1
    DB Version : 11.2.0.1
    I am duplicating database and got below error:
    contents of Memory Script:
       Alter clone database open resetlogs;
    executing Memory Script
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-00601: fatal error in recovery manager
    RMAN-03004: fatal error during execution of command
    RMAN-10041: Could not re-create polling channel context following failure.
    RMAN-10024: error setting up for rpc polling
    RMAN-10005: error opening cursor
    RMAN-10002: ORACLE error: ORA-03114: not connected to ORACLE
    RMAN-03002: failure of Duplicate Db command at 02/16/2013 17:20:02
    RMAN-03015: error occurred in stored script Memory Script
    RMAN-06136: ORACLE error from auxiliary database: ORA-01092: ORACLE instance terminated. Disconnection forced
    ORA-30012: undo tablespace 'UNDOTBS' does not exist or of wrong type
    Process ID: 44040326
    Session ID: 65 Serial number: 3
    Error is because in target database undo tablespace is UNDOTBS_NEW and in auxiliary database undo tablespace name in init file is UNDOTBS. I followed the meatlink doc 433992.1 which suggest following steps to recover from above error:
    1) edit the parameter UNDO_MANAGEMENT to "MANUAL"
    2) start database again
    3) drop the UNDO tablespace
    4) recreate UNDO tablespace which matches to name in init file.
    5) shutdown & start DB again.
    Now, i edited init file and tried to start DB and got following error:
    oracore@cph-core-db01-s $ sqlplus /nolog
    SQL*Plus: Release 11.2.0.1.0 Production on Sat Feb 16 17:22:11 2013
    Copyright (c) 1982, 2009, Oracle.  All rights reserved.
    SQL> conn sys as sysdba
    Enter password:
    Connected to an idle instance.
    SQL> startup
    ORACLE instance started.
    Total System Global Area 4275781632 bytes
    Fixed Size                  2213632 bytes
    Variable Size             822085888 bytes
    Database Buffers         3439329280 bytes
    Redo Buffers               12152832 bytes
    Database mounted.
    ORA-01113: file 1 needs media recovery
    ORA-01110: data file 1: '/u04/oradata/CORE/CORE_DUP/system01.dbf'I don't want to run duplicate command with correct UNDO tablespace name. Any other work around for this ?

    STARTUP MOUNT
    RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL
    CANCEL
    ALTER DATABASE OPEN RESETLOGS
    Above option is not working for CORE_DUP, i am getting very strange error, while trying to recover i am getting very strange error as below:
    oracore@cph-core-db01-s $ export ORACLE_SID=CORE_DUP
    SQL*Plus: Release 11.2.0.1.0 Production on Mon Feb 18 11:17:25 2013
    Copyright (c) 1982, 2009, Oracle.  All rights reserved.
    SQL> conn sys as sysdba
    Enter password:
    Connected to an idle instance.
    SQL> startup mount
    ORACLE instance started.
    Total System Global Area 4275781632 bytes
    Fixed Size                  2213632 bytes
    Variable Size             822085888 bytes
    Database Buffers         3439329280 bytes
    Redo Buffers               12152832 bytes
    Database mounted.
    SQL> alter database open resetlogs;
    alter database open resetlogs
    ERROR at line 1:
    ORA-01139: RESETLOGS option only valid after an incomplete database recovery
    SQL> recover database using backup controlfile until cancel;
    ORA-00283: recovery session canceled due to errors
    ORA-16433: The database must be opened in read/write mode.Primary database initfile:
    event="10298 trace name context forever, level 32"
    db_block_size=8192
    db_file_multiblock_read_count=16
    open_cursors=300
    db_name=CORE
    cursor_sharing='SIMILAR'
    global_names=FALSE
    diagnostic_dest=/u01/app/oracore/diag/CORE
    #background_dump_dest=/u01/app/oracore/diag/rdbms/bdump
    #core_dump_dest=/u01/app/oracore/diag/rdbms/cdump
    #user_dump_dest=/u01/app/oracore/diag/rdbms/udump
    control_files=("/u01/oradata/CORE/control01.ctl", "/u02/oradata/CORE/control02.ctl", "/u03/oradata/CORE/control03.ctl")
    log_archive_dest_1='LOCATION=/u05/oradata/CORE/'
    log_archive_format='CORE_%s%t%r.ARC'
    job_queue_processes=10
    compatible=11.2.0.1
    processes=150
    fast_start_mttr_target=300
    filesystemio_options='SETALL'
    pga_aggregate_target=500M
    recyclebin='OFF'
    remote_login_passwordfile='EXCLUSIVE'
    session_cached_cursors=100
    sga_target=4G
    undo_management='AUTO'
    undo_tablespace='UNDOTBS_NEW'
    nls_date_format='DD-MON-RRRR'
    nls_length_semantics='CHAR'initfile for CORE_DUP
    event="10298 trace name context forever, level 32"
    db_block_size=8192
    db_file_multiblock_read_count=16
    open_cursors=300
    db_name=CORE_DUP
    cursor_sharing='SIMILAR'
    global_names=FALSE
    diagnostic_dest=/u01/app/oracore/diag/CORE/CORE_DUP
    control_files=("/u01/oradata/CORE/CORE_DUP/control01.ctl", "/u02/oradata/CORE/CORE_DUP/control02.ctl", "/u03/oradata/CORE/CORE_DUP/control03.ctl")
    log_archive_dest_1='LOCATION=/u05/oradata/CORE/CORE_DUP/'
    log_archive_format='CORE_DUP%s%t%r.ARC'
    job_queue_processes=10
    compatible=11.2.0.1
    _compression_compatibility="11.2.0"
    processes=150
    fast_start_mttr_target=300
    filesystemio_options='SETALL'
    pga_aggregate_target=500M
    recyclebin='OFF'
    remote_login_passwordfile='EXCLUSIVE'
    session_cached_cursors=100
    sga_target=4G
    undo_management='AUTO'
    undo_tablespace='UNDOTBS'
    nls_date_format='DD-MON-RRRR'
    nls_length_semantics='CHAR'
    log_file_name_convert='/CORE','/CORE/CORE_DUP'
    db_file_name_convert='/CORE','/CORE/CORE_DUP'Duplicate steps are as:
    oracore@cph-core-db01-s $ rman target sys/zzzz@core catalog rmantst10/zzzzz@catdb auxiliary /
    Recovery Manager: Release 11.2.0.1.0 - Production on Mon Feb 18 15:50:00 2013
    Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
    connected to target database: CORE (DBID=913972022)
    connected to recovery catalog database
    connected to auxiliary database: CORE_DUP (not mounted)
    RMAN> duplicate target database to CORE_DUP;
    Starting Duplicate Db at 18-FEB-13
    allocated channel: ORA_AUX_DISK_1
    channel ORA_AUX_DISK_1: SID=96 device type=DISK
    allocated channel: ORA_AUX_DISK_2
    channel ORA_AUX_DISK_2: SID=127 device type=DISK
    contents of Memory Script:
       sql clone "create spfile from memory";
    executing Memory Script
    sql statement: create spfile from memory
    contents of Memory Script:
       shutdown clone immediate;
       startup clone nomount;
    executing Memory Script
    Oracle instance shut down
    connected to auxiliary database (not started)
    Oracle instance started
    Total System Global Area    4275781632 bytes
    Fixed Size                     2213632 bytes
    Variable Size                838863104 bytes
    Database Buffers            3422552064 bytes
    Redo Buffers                  12152832 bytes
    contents of Memory Script:
       sql clone "alter system set  db_name =
    ''CORE'' comment=
    ''Modified by RMAN duplicate'' scope=spfile";
       sql clone "alter system set  db_unique_name =
    ''CORE_DUP'' comment=
    ''Modified by RMAN duplicate'' scope=spfile";
       shutdown clone immediate;
       startup clone force nomount
       restore clone primary controlfile;
       alter clone database mount;
    executing Memory Script
    sql statement: alter system set  db_name =  ''CORE'' comment= ''Modified by RMAN duplicate'' scope=spfile
    sql statement: alter system set  db_unique_name =  ''CORE_DUP'' comment= ''Modified by RMAN duplicate'' scope=spfile
    Oracle instance shut down
    Oracle instance started
    Total System Global Area    4275781632 bytes
    Fixed Size                     2213632 bytes
    Variable Size                838863104 bytes
    Database Buffers            3422552064 bytes
    Redo Buffers                  12152832 bytes
    Starting restore at 18-FEB-13
    allocated channel: ORA_AUX_DISK_1
    channel ORA_AUX_DISK_1: SID=96 device type=DISK
    allocated channel: ORA_AUX_DISK_2
    channel ORA_AUX_DISK_2: SID=127 device type=DISK
    channel ORA_AUX_DISK_1: starting datafile backup set restore
    channel ORA_AUX_DISK_1: restoring control file
    channel ORA_AUX_DISK_1: reading from backup piece /oraclebackup/CORE/DF_L1_CORE_16022013_5fo246k3_175_1
    channel ORA_AUX_DISK_1: piece handle=/oraclebackup/CORE/DF_L1_CORE_16022013_5fo246k3_175_1 tag=LEVEL1
    channel ORA_AUX_DISK_1: restored backup piece 1
    channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
    output file name=/u01/oradata/CORE/CORE_DUP/control01.ctl
    output file name=/u02/oradata/CORE/CORE_DUP/control02.ctl
    output file name=/u03/oradata/CORE/CORE_DUP/control03.ctl
    Finished restore at 18-FEB-13
    database mounted
    contents of Memory Script:
       set until scn  1217601;
       set newname for datafile  1 to
    "/u04/oradata/CORE/CORE_DUP/system01.dbf";
       set newname for datafile  2 to
    "/u04/oradata/CORE/CORE_DUP/sysaux01.dbf";
       set newname for datafile  4 to
    "/u04/oradata/CORE/CORE_DUP/users01.dbf";
       set newname for datafile  5 to
    "/u04/oradata/CORE/CORE_DUP/users02.dbf";
       set newname for datafile  6 to
    "/u04/oradata/CORE/CORE_DUP/users03.dbf";
       set newname for datafile  9 to
    "/u04/oradata/CORE/CORE_DUP/undotbs_new01.dbf";
       restore
       clone database
    executing Memory Script
    executing command: SET until clause
    executing command: SET NEWNAME
    executing command: SET NEWNAME
    executing command: SET NEWNAME
    executing command: SET NEWNAME
    executing command: SET NEWNAME
    executing command: SET NEWNAME
    Starting restore at 18-FEB-13
    using channel ORA_AUX_DISK_1
    using channel ORA_AUX_DISK_2
    channel ORA_AUX_DISK_1: starting datafile backup set restore
    channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
    channel ORA_AUX_DISK_1: restoring datafile 00004 to /u04/oradata/CORE/CORE_DUP/users01.dbf
    channel ORA_AUX_DISK_1: restoring datafile 00005 to /u04/oradata/CORE/CORE_DUP/users02.dbf
    channel ORA_AUX_DISK_1: restoring datafile 00006 to /u04/oradata/CORE/CORE_DUP/users03.dbf
    channel ORA_AUX_DISK_1: reading from backup piece /oraclebackup/CORE/DF_L0_CORE_16022013_55o246fe_165_1
    channel ORA_AUX_DISK_2: starting datafile backup set restore
    channel ORA_AUX_DISK_2: specifying datafile(s) to restore from backup set
    channel ORA_AUX_DISK_2: restoring datafile 00001 to /u04/oradata/CORE/CORE_DUP/system01.dbf
    channel ORA_AUX_DISK_2: restoring datafile 00002 to /u04/oradata/CORE/CORE_DUP/sysaux01.dbf
    channel ORA_AUX_DISK_2: restoring datafile 00009 to /u04/oradata/CORE/CORE_DUP/undotbs_new01.dbf
    channel ORA_AUX_DISK_2: reading from backup piece /oraclebackup/CORE/DF_L0_CORE_16022013_56o246fe_166_1
    channel ORA_AUX_DISK_2: piece handle=/oraclebackup/CORE/DF_L0_CORE_16022013_56o246fe_166_1 tag=LEVEL0
    channel ORA_AUX_DISK_2: restored backup piece 1
    channel ORA_AUX_DISK_2: restore complete, elapsed time: 00:01:15
    channel ORA_AUX_DISK_1: piece handle=/oraclebackup/CORE/DF_L0_CORE_16022013_55o246fe_165_1 tag=LEVEL0
    channel ORA_AUX_DISK_1: restored backup piece 1
    channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:35
    Finished restore at 18-FEB-13
    contents of Memory Script:
       switch clone datafile all;
    executing Memory Script
    datafile 1 switched to datafile copy
    input datafile copy RECID=24 STAMP=807724355 file name=/u04/oradata/CORE/CORE_DUP/system01.dbf
    datafile 2 switched to datafile copy
    input datafile copy RECID=25 STAMP=807724355 file name=/u04/oradata/CORE/CORE_DUP/sysaux01.dbf
    datafile 4 switched to datafile copy
    input datafile copy RECID=26 STAMP=807724356 file name=/u04/oradata/CORE/CORE_DUP/users01.dbf
    datafile 5 switched to datafile copy
    input datafile copy RECID=27 STAMP=807724356 file name=/u04/oradata/CORE/CORE_DUP/users02.dbf
    datafile 6 switched to datafile copy
    input datafile copy RECID=28 STAMP=807724356 file name=/u04/oradata/CORE/CORE_DUP/users03.dbf
    datafile 9 switched to datafile copy
    input datafile copy RECID=29 STAMP=807724356 file name=/u04/oradata/CORE/CORE_DUP/undotbs_new01.dbf
    contents of Memory Script:
       set until scn  1217601;
       recover
       clone database
        delete archivelog
    executing Memory Script
    executing command: SET until clause
    Starting recover at 18-FEB-13
    using channel ORA_AUX_DISK_1
    using channel ORA_AUX_DISK_2
    channel ORA_AUX_DISK_1: starting incremental datafile backup set restore
    channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
    destination for restore of datafile 00001: /u04/oradata/CORE/CORE_DUP/system01.dbf
    destination for restore of datafile 00002: /u04/oradata/CORE/CORE_DUP/sysaux01.dbf
    destination for restore of datafile 00009: /u04/oradata/CORE/CORE_DUP/undotbs_new01.dbf
    channel ORA_AUX_DISK_1: reading from backup piece /oraclebackup/CORE/DF_L1_CORE_16022013_5eo246k2_174_1
    channel ORA_AUX_DISK_2: starting incremental datafile backup set restore
    channel ORA_AUX_DISK_2: specifying datafile(s) to restore from backup set
    destination for restore of datafile 00004: /u04/oradata/CORE/CORE_DUP/users01.dbf
    destination for restore of datafile 00005: /u04/oradata/CORE/CORE_DUP/users02.dbf
    destination for restore of datafile 00006: /u04/oradata/CORE/CORE_DUP/users03.dbf
    channel ORA_AUX_DISK_2: reading from backup piece /oraclebackup/CORE/DF_L1_CORE_16022013_5do246k2_173_1
    channel ORA_AUX_DISK_1: piece handle=/oraclebackup/CORE/DF_L1_CORE_16022013_5eo246k2_174_1 tag=LEVEL1
    channel ORA_AUX_DISK_1: restored backup piece 1
    channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
    channel ORA_AUX_DISK_2: piece handle=/oraclebackup/CORE/DF_L1_CORE_16022013_5do246k2_173_1 tag=LEVEL1
    channel ORA_AUX_DISK_2: restored backup piece 1
    channel ORA_AUX_DISK_2: restore complete, elapsed time: 00:00:01
    starting media recovery
    archived log for thread 1 with sequence 1718 is already on disk as file /u05/oradata/CORE/CORE_17181807276264.ARC
    archived log for thread 1 with sequence 1719 is already on disk as file /u05/oradata/CORE/CORE_17191807276264.ARC
    archived log for thread 1 with sequence 1720 is already on disk as file /u05/oradata/CORE/CORE_17201807276264.ARC
    archived log for thread 1 with sequence 1721 is already on disk as file /u05/oradata/CORE/CORE_17211807276264.ARC
    archived log for thread 1 with sequence 1722 is already on disk as file /u05/oradata/CORE/CORE_17221807276264.ARC
    archived log for thread 1 with sequence 1723 is already on disk as file /u05/oradata/CORE/CORE_17231807276264.ARC
    archived log for thread 1 with sequence 1724 is already on disk as file /u05/oradata/CORE/CORE_17241807276264.ARC
    archived log for thread 1 with sequence 1725 is already on disk as file /u05/oradata/CORE/CORE_17251807276264.ARC
    archived log for thread 1 with sequence 1726 is already on disk as file /u05/oradata/CORE/CORE_17261807276264.ARC
    archived log for thread 1 with sequence 1727 is already on disk as file /u05/oradata/CORE/CORE_17271807276264.ARC
    archived log for thread 1 with sequence 1728 is already on disk as file /u05/oradata/CORE/CORE_17281807276264.ARC
    archived log for thread 1 with sequence 1729 is already on disk as file /u05/oradata/CORE/CORE_17291807276264.ARC
    archived log for thread 1 with sequence 1730 is already on disk as file /u05/oradata/CORE/CORE_17301807276264.ARC
    archived log for thread 1 with sequence 1731 is already on disk as file /u05/oradata/CORE/CORE_17311807276264.ARC
    archived log for thread 1 with sequence 1732 is already on disk as file /u05/oradata/CORE/CORE_17321807276264.ARC
    archived log for thread 1 with sequence 1733 is already on disk as file /u05/oradata/CORE/CORE_17331807276264.ARC
    archived log for thread 1 with sequence 1734 is already on disk as file /u05/oradata/CORE/CORE_17341807276264.ARC
    archived log for thread 1 with sequence 1735 is already on disk as file /u05/oradata/CORE/CORE_17351807276264.ARC
    archived log for thread 1 with sequence 1736 is already on disk as file /u05/oradata/CORE/CORE_17361807276264.ARC
    archived log for thread 1 with sequence 1737 is already on disk as file /u05/oradata/CORE/CORE_17371807276264.ARC
    archived log for thread 1 with sequence 1738 is already on disk as file /u05/oradata/CORE/CORE_17381807276264.ARC
    archived log for thread 1 with sequence 1739 is already on disk as file /u05/oradata/CORE/CORE_17391807276264.ARC
    archived log for thread 1 with sequence 1740 is already on disk as file /u05/oradata/CORE/CORE_17401807276264.ARC
    archived log for thread 1 with sequence 1741 is already on disk as file /u05/oradata/CORE/CORE_17411807276264.ARC
    archived log for thread 1 with sequence 1742 is already on disk as file /u05/oradata/CORE/CORE_17421807276264.ARC
    archived log for thread 1 with sequence 1743 is already on disk as file /u05/oradata/CORE/CORE_17431807276264.ARC
    archived log for thread 1 with sequence 1744 is already on disk as file /u05/oradata/CORE/CORE_17441807276264.ARC
    channel ORA_AUX_DISK_1: starting archived log restore to default destination
    channel ORA_AUX_DISK_1: restoring archived log
    archived log thread=1 sequence=1710
    channel ORA_AUX_DISK_1: reading from backup piece /oraclebackup/CORE/ARC_1HR_CORE_16022013_5jo24jp8_179_1
    channel ORA_AUX_DISK_2: starting archived log restore to default destination
    channel ORA_AUX_DISK_2: restoring archived log
    archived log thread=1 sequence=1711
    channel ORA_AUX_DISK_2: restoring archived log
    archived log thread=1 sequence=1712
    channel ORA_AUX_DISK_2: restoring archived log
    archived log thread=1 sequence=1713
    channel ORA_AUX_DISK_2: restoring archived log
    archived log thread=1 sequence=1714
    channel ORA_AUX_DISK_2: restoring archived log
    archived log thread=1 sequence=1715
    channel ORA_AUX_DISK_2: restoring archived log
    archived log thread=1 sequence=1716
    channel ORA_AUX_DISK_2: restoring archived log
    archived log thread=1 sequence=1717
    channel ORA_AUX_DISK_2: reading from backup piece /oraclebackup/CORE/ARC_1HR_CORE_18022013_5ko296uf_180_1
    channel ORA_AUX_DISK_1: piece handle=/oraclebackup/CORE/ARC_1HR_CORE_16022013_5jo24jp8_179_1 tag=ARC_1HR
    channel ORA_AUX_DISK_1: restored backup piece 1
    channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
    archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17101807276264.ARC thread=1 sequence=1710
    channel clone_default: deleting archived log(s)
    archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17101807276264.ARC RECID=3041 STAMP=807724360
    channel ORA_AUX_DISK_2: piece handle=/oraclebackup/CORE/ARC_1HR_CORE_18022013_5ko296uf_180_1 tag=ARC_1HR
    channel ORA_AUX_DISK_2: restored backup piece 1
    channel ORA_AUX_DISK_2: restore complete, elapsed time: 00:00:08
    archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17111807276264.ARC thread=1 sequence=1711
    channel clone_default: deleting archived log(s)
    archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17111807276264.ARC RECID=3042 STAMP=807724362
    archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17121807276264.ARC thread=1 sequence=1712
    channel clone_default: deleting archived log(s)
    archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17121807276264.ARC RECID=3043 STAMP=807724363
    archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17131807276264.ARC thread=1 sequence=1713
    channel clone_default: deleting archived log(s)
    archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17131807276264.ARC RECID=3044 STAMP=807724367
    archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17141807276264.ARC thread=1 sequence=1714
    channel clone_default: deleting archived log(s)
    archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17141807276264.ARC RECID=3048 STAMP=807724367
    archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17151807276264.ARC thread=1 sequence=1715
    channel clone_default: deleting archived log(s)
    archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17151807276264.ARC RECID=3046 STAMP=807724367
    archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17161807276264.ARC thread=1 sequence=1716
    channel clone_default: deleting archived log(s)
    archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17161807276264.ARC RECID=3045 STAMP=807724367
    archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17171807276264.ARC thread=1 sequence=1717
    channel clone_default: deleting archived log(s)
    archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17171807276264.ARC RECID=3047 STAMP=807724367
    archived log file name=/u05/oradata/CORE/CORE_17181807276264.ARC thread=1 sequence=1718
    archived log file name=/u05/oradata/CORE/CORE_17191807276264.ARC thread=1 sequence=1719
    archived log file name=/u05/oradata/CORE/CORE_17201807276264.ARC thread=1 sequence=1720
    archived log file name=/u05/oradata/CORE/CORE_17211807276264.ARC thread=1 sequence=1721
    archived log file name=/u05/oradata/CORE/CORE_17221807276264.ARC thread=1 sequence=1722
    archived log file name=/u05/oradata/CORE/CORE_17231807276264.ARC thread=1 sequence=1723
    archived log file name=/u05/oradata/CORE/CORE_17241807276264.ARC thread=1 sequence=1724
    archived log file name=/u05/oradata/CORE/CORE_17251807276264.ARC thread=1 sequence=1725
    archived log file name=/u05/oradata/CORE/CORE_17261807276264.ARC thread=1 sequence=1726
    archived log file name=/u05/oradata/CORE/CORE_17271807276264.ARC thread=1 sequence=1727
    archived log file name=/u05/oradata/CORE/CORE_17281807276264.ARC thread=1 sequence=1728
    archived log file name=/u05/oradata/CORE/CORE_17291807276264.ARC thread=1 sequence=1729
    archived log file name=/u05/oradata/CORE/CORE_17301807276264.ARC thread=1 sequence=1730
    archived log file name=/u05/oradata/CORE/CORE_17311807276264.ARC thread=1 sequence=1731
    archived log file name=/u05/oradata/CORE/CORE_17321807276264.ARC thread=1 sequence=1732
    archived log file name=/u05/oradata/CORE/CORE_17331807276264.ARC thread=1 sequence=1733
    archived log file name=/u05/oradata/CORE/CORE_17341807276264.ARC thread=1 sequence=1734
    archived log file name=/u05/oradata/CORE/CORE_17351807276264.ARC thread=1 sequence=1735
    archived log file name=/u05/oradata/CORE/CORE_17361807276264.ARC thread=1 sequence=1736
    archived log file name=/u05/oradata/CORE/CORE_17371807276264.ARC thread=1 sequence=1737
    archived log file name=/u05/oradata/CORE/CORE_17381807276264.ARC thread=1 sequence=1738
    archived log file name=/u05/oradata/CORE/CORE_17391807276264.ARC thread=1 sequence=1739
    archived log file name=/u05/oradata/CORE/CORE_17401807276264.ARC thread=1 sequence=1740
    archived log file name=/u05/oradata/CORE/CORE_17411807276264.ARC thread=1 sequence=1741
    archived log file name=/u05/oradata/CORE/CORE_17421807276264.ARC thread=1 sequence=1742
    archived log file name=/u05/oradata/CORE/CORE_17431807276264.ARC thread=1 sequence=1743
    archived log file name=/u05/oradata/CORE/CORE_17441807276264.ARC thread=1 sequence=1744
    media recovery complete, elapsed time: 00:00:33
    Finished recover at 18-FEB-13
    contents of Memory Script:
       shutdown clone immediate;
       startup clone nomount;
       sql clone "alter system set  db_name =
    ''CORE_DUP'' comment=
    ''Reset to original value by RMAN'' scope=spfile";
       sql clone "alter system reset  db_unique_name scope=spfile";
       shutdown clone immediate;
       startup clone nomount;
    executing Memory Script
    database dismounted
    Oracle instance shut down
    connected to auxiliary database (not started)
    Oracle instance started
    Total System Global Area    4275781632 bytes
    Fixed Size                     2213632 bytes
    Variable Size                838863104 bytes
    Database Buffers            3422552064 bytes
    Redo Buffers                  12152832 bytes
    sql statement: alter system set  db_name =  ''CORE_DUP'' comment= ''Reset to original value by RMAN'' scope=spfile
    sql statement: alter system reset  db_unique_name scope=spfile
    Oracle instance shut down
    connected to auxiliary database (not started)
    Oracle instance started
    Total System Global Area    4275781632 bytes
    Fixed Size                     2213632 bytes
    Variable Size                838863104 bytes
    Database Buffers            3422552064 bytes
    Redo Buffers                  12152832 bytes
    sql statement: CREATE CONTROLFILE REUSE SET DATABASE "CORE_DUP" RESETLOGS ARCHIVELOG
      MAXLOGFILES     32
      MAXLOGMEMBERS      4
      MAXDATAFILES      500
      MAXINSTANCES     1
      MAXLOGHISTORY     2298
    LOGFILE
      GROUP  1 ( '/u02/oradata/CORE/CORE_DUP/redo01a.log', '/u03/oradata/CORE/CORE_DUP/redo01b.log' ) SIZE 10 M  REUSE,
      GROUP  2 ( '/u02/oradata/CORE/CORE_DUP/redo02a.log', '/u03/oradata/CORE/CORE_DUP/redo02b.log' ) SIZE 10 M  REUSE,
      GROUP  3 ( '/u02/oradata/CORE/CORE_DUP/redo03a.log', '/u03/oradata/CORE/CORE_DUP/redo03b.log' ) SIZE 10 M  REUSE
    DATAFILE
      '/u04/oradata/CORE/CORE_DUP/system01.dbf'
    CHARACTER SET AL32UTF8
    contents of Memory Script:
       set newname for tempfile  1 to
    "/u04/oradata/CORE/CORE_DUP/temp01.dbf";
       switch clone tempfile all;
       catalog clone datafilecopy  "/u04/oradata/CORE/CORE_DUP/sysaux01.dbf",
    "/u04/oradata/CORE/CORE_DUP/users01.dbf",
    "/u04/oradata/CORE/CORE_DUP/users02.dbf",
    "/u04/oradata/CORE/CORE_DUP/users03.dbf",
    "/u04/oradata/CORE/CORE_DUP/undotbs_new01.dbf";
       switch clone datafile all;
    executing Memory Script
    executing command: SET NEWNAME
    renamed tempfile 1 to /u04/oradata/CORE/CORE_DUP/temp01.dbf in control file
    cataloged datafile copy
    datafile copy file name=/u04/oradata/CORE/CORE_DUP/sysaux01.dbf RECID=1 STAMP=807724423
    cataloged datafile copy
    datafile copy file name=/u04/oradata/CORE/CORE_DUP/users01.dbf RECID=2 STAMP=807724423
    cataloged datafile copy
    datafile copy file name=/u04/oradata/CORE/CORE_DUP/users02.dbf RECID=3 STAMP=807724423
    cataloged datafile copy
    datafile copy file name=/u04/oradata/CORE/CORE_DUP/users03.dbf RECID=4 STAMP=807724423
    cataloged datafile copy
    datafile copy file name=/u04/oradata/CORE/CORE_DUP/undotbs_new01.dbf RECID=5 STAMP=807724423
    datafile 2 switched to datafile copy
    input datafile copy RECID=1 STAMP=807724423 file name=/u04/oradata/CORE/CORE_DUP/sysaux01.dbf
    datafile 4 switched to datafile copy
    input datafile copy RECID=2 STAMP=807724423 file name=/u04/oradata/CORE/CORE_DUP/users01.dbf
    datafile 5 switched to datafile copy
    input datafile copy RECID=3 STAMP=807724423 file name=/u04/oradata/CORE/CORE_DUP/users02.dbf
    datafile 6 switched to datafile copy
    input datafile copy RECID=4 STAMP=807724423 file name=/u04/oradata/CORE/CORE_DUP/users03.dbf
    datafile 9 switched to datafile copy
    input datafile copy RECID=5 STAMP=807724423 file name=/u04/oradata/CORE/CORE_DUP/undotbs_new01.dbf
    contents of Memory Script:
       Alter clone database open resetlogs;
    executing Memory Script
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-00601: fatal error in recovery manager
    RMAN-03004: fatal error during execution of command
    RMAN-10041: Could not re-create polling channel context following failure.
    RMAN-10024: error setting up for rpc polling
    RMAN-10005: error opening cursor
    RMAN-10002: ORACLE error: ORA-03114: not connected to ORACLE
    RMAN-03002: failure of Duplicate Db command at 02/18/2013 15:53:50
    RMAN-03015: error occurred in stored script Memory Script
    RMAN-06136: ORACLE error from auxiliary database: ORA-01092: ORACLE instance terminated. Disconnection forced
    ORA-30012: undo tablespace 'UNDOTBS' does not exist or of wrong type
    Process ID: 3670170
    Session ID: 33 Serial number: 7
    oracore@cph-core-db01-s $

  • Unable to shrink undo tablespace... Help!

    Hi,
    I have problems to shrink the system undo tablespace, which has grown up to 14 GB.
    I use 9.2. Table space owner is 'SYSTEM', undo_management = AUTO.
    I tried to shrink the greatest rollback segments by the commands
    ALTER SESSION SET UNDO_SUPPRESS_ERRORS = TRUE;
    ALTER ROLLBACK SEGMENT "_SYSSMU6$" SHRINK TO 20 M;
    Oracle confirmed these commands, but nothing happened.
    What am I doing wrong?
    Hermann Mueller

    You have seen the discussion about the undo segments, on the temporary tablespaces, you should be aware that the sort segment of a given temporary tablespace is created at the time the first sort operation takes place. The sort segment continues to grow by means of extent allocation until the segment size has reached the total storage demands of all of the active sorts running on the instance. Oracle will keep on allocating temporary space on demand unless the physical limit states otherwise.
    Temporary segments are produced each time a sort operation (explicit -order by- or implicit -aggregation, reindexing-) requires to sort a set that cannot fit into memory. So if you detect excesive sort usage you should aim your monitors towards the sort operations (reports, reindexing, max, min, aggregations, order by ...). If your system has a DDS behaviour, this kind of operations are frequent as a massive sorting has to be peformed against millions of rows.
    A Temporary tablespace will almost always appear to be near 100% full, that's because once oracle has allocated temporary space it doesn't release it back to the free space, it keeps it allocated even when the sort operation has finished. Criteria behind this fact is similar to the one oracle used to have when the rollback segments were in use, Oracle only allocated space and the dba should perform manual actions to release space, and the criteria is performance. Once it has allocated space this big, there are possibilities that the same circumstances that raised the temporary usage high water mark to this level are repeated, so if oracle keeps the mamimum allocated space, it won't have to allocate the same storage once more.
    Main concern with temporary tablespace growth is not free space itself, but the reasons why this amount of space was allocated, so I suggest you to track the sql statements with sort operations. If you are certain the circumstances that motivated this amount of temporary resources to be allocated won't be repeated again, then you could think of resizing down your temporary tablespace. I suggest you to create a new temporary tablespace with the desired size, and alter the default tempoary tablespace to point to this newly crated temporary tablespace, and finally get rid of the original temporary TS.
    ~ Madrid

  • Undo Tablespace Reuse

    Hi,
    I am using 10.2.0.3.0 on Oracle Solaris 5.10.
    I have an undo tablespace 'UNDOTBS1' which has 5 data files of sizes 60GB. Here are my undo parameters:
    SQL> show parameter undo
    NAME                                 TYPE        VALUE
    undo_management                      string      AUTO
    undo_retention                       integer     900
    undo_tablespace                      string      UNDOTBS1I have a long running batch process, which is inserting billions of records in the table and generating lots of undo. The batch is running for the last two days, and generating lots of undo and developer says that he is committing after 3 million records, though he was told to commit after 10000 records. Now all the data files of undo tablespace have become full except one, which is also getting filled up.
    I see from dba_rollback_segs that there are some 25 segments which are showing status offline.
    does it mean that the oracle will reuse those segments and I dont need to add another data file to the undo tablespace?
    How would I know during this running process, that oracle would reuse space in undo tablespace, or will just throw an error, after exhausting all the data files.
    Thanks and regards

    Hi,
    As the undo segments are used in a curcular fashion, dba_free_space may not give correct picture. use following sql.
    col PCT_USED head '% Used'
    select a.used, b.allocated, round((a.used/b.allocated)*100,2) PCT_USED, c.unexpired, d.active from
    (select sum(BYTES/1024/1024) used from dba_undo_extents where status in ('UNEXPIRED','ACTIVE')) a,
    (select bytes/1024/1024 allocated from dba_data_files where tablespace_name = 'UNDOTBS1') b ,
    (select sum(bytes/1024/1024) unexpired from dba_undo_extents where status = 'UNEXPIRED') c,
    (select sum(bytes/1024/1024) active from dba_undo_extents where status = 'ACTIVE') d
    Here ACTIVE - they are being used
    UNEXPIRED - they will not be released until the undo_retention time. But if all other extents are used, then oracle may reallocate unexpired blocks and any session which is trying to read from unexpired block may received "snapshot too old error".
    EXPIRED - here these blocks will be reused, you can consider them as free.
    Thanks,
    Siva

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

  • Undo tablespace  and instance recovery

    Is UNDO tablespace is mandatory during instance recovery. ?
    Suppose my undo tablespace has some active transaction and instance crashes making undo tablespace inaccessible.
    Will database search for that undo tablespace during startup or I can simply create a new one and set as new undo tablespace ?
    With Regards
    Amt

    Hi,
    >>I am actually confused
    Keep in mind that If an Oracle instance crashes, any changes that are made in the SGA are not written to the data files. When you restart the instance, the SMON background process automatically performs instance recovery by performing the following tasks:
    • Rolling forward changes that are made in the online redo log files but not in the data files. Since all the committed transactions are written to the online redo log files, these are successfully recovered as result of rolling forward changes from the online redo log files to the data files.
    • Opening the database. After the database is opened, users can log on and access any data that is not locked by un-recovered transaction.
    • Rolling back all the uncommitted transactions.
    In resume, during database recovery, undo records are used to undo any uncommitted changes applied from the redo log to the datafiles.
    But if your UNDO tablespace crashed, then you will need recover it, using steps like
    1) shutdown abort (If the instance yet is up)
    2) cp -a /backup/undo01.dbf /u01/oradata (restore the latest recent backup file)
    3) startup mount
    4) recover database or recover datafile '/u01/oradata/undo01.dbf'
    5) alter database open;
    In some cases, re-create it, also resolve the problem:
    http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:5669213349582
    Missing UNDO tablespace in restore backup
    >>I checked in test setup and it is actually waiting for missing UNDO tablespace.
    Which exactly test you are doing?
    Cheers

  • XE11: sysaux & undo tablespaces and files

    Hello,
    does anyone recognized the mixed names of sysaux and undo tablespaces?
    If i use:
    SQL> SELECT file_name, tablespace_name, ROUND(bytes/1024000) MB
    SQL> FROM dba_data_files
    SQL> ORDER BY 1;
    then i will get:
    FILE_NAME TABLESPACE MB
    C:\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSAUX.DBF UNDOTBS1 26
    C:\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSTEM.DBF SYSTEM 369
    C:\ORACLEXE\APP\ORACLE\ORADATA\XE\UNDOTBS1.DBF SYSAUX 666
    C:\ORACLEXE\APP\ORACLE\ORADATA\XE\USERS.DBF USERS 102
    The file SYSAUX.DBF points to tablespace UNDOTBS1 and
    the file UNDOTBS1.DBF points to tablespace SYSAUX
    Could this cause a Problem ?
    Can this be solved?
    This is only in the windows-version, not in the linux-version.
    Best reagrds
    AK

    Hello,
    i did the following:
    SQLPLUS:
    SHUTDOWN IMMEDIATE;
    AS ADMINISTRATOR:
    COPY C:\oraclexe\app\oracle\oradata\XE\SYSAUX.DBF C:\oraclexe\app\oracle\oradata\XE\UNDOTBS2.DBF
    COPY C:\oraclexe\app\oracle\oradata\XE\UNDOTBS1.DBF C:\oraclexe\app\oracle\oradata\XE\SYSAUX2.DBF
    SQLPLUS:
    STARTUP MOUNT:
    ALTER DATABASE RENAME FILE 'C:\oraclexe\app\oracle\oradata\XE\SYSAUX.DBF' TO 'C:\oraclexe\app\oracle\oradata\XE\UNDOTBS2.DBF';
    ALTER DATABASE RENAME FILE 'C:\oraclexe\app\oracle\oradata\XE\UNDOTBS1.DBF' TO 'C:\oraclexe\app\oracle\oradata\XE\SYSAUX2.DBF';
    ALTER DATABASE OPEN;
    SHUTDOWN IMMEDIATE;
    AS ADMINISTRATOR:
    COPY C:\oraclexe\app\oracle\oradata\XE\SYSAUX2.DBF C:\oraclexe\app\oracle\oradata\XE\SYSAUX.DBF (overwrite y)
    COPY C:\oraclexe\app\oracle\oradata\XE\UNDOTBS2.DBF C:\oraclexe\app\oracle\oradata\XE\UNDOTBS1.DBF (overwrite y)
    SQLPLUS:
    STARTUP MOUNT:
    ALTER DATABASE RENAME FILE 'C:\oraclexe\app\oracle\oradata\XE\SYSAUX2.DBF' TO 'C:\oraclexe\app\oracle\oradata\XE\SYSAUX.DBF';
    ALTER DATABASE RENAME FILE 'C:\oraclexe\app\oracle\oradata\XE\UNDOTBS2.DBF' TO 'C:\oraclexe\app\oracle\oradata\XE\UNDOTBS1.DBF';
    ALTER DATABASE OPEN;
    SHUTDOWN IMMEDIATE;
    AS ADMINISTRATOR:
    DEL C:\oraclexe\app\oracle\oradata\XE\SYSAUX2.DBF
    DEL C:\oraclexe\app\oracle\oradata\XE\UNDOTBS2.DBF
    SQLPLUS:
    STARTUP
    RMAN:
    REPORT SCHEMA;
    Spooling started in log file: switch.txt
    Recovery Manager11.2.0.2.0
    RMAN>
    Report of database schema for database with db_unique_name XE
    List of Permanent Datafiles
    ===========================
    File Size(MB) Tablespace RB segs Datafile Name
    1 360 SYSTEM *** C:\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSTEM.DBF
    2 650 SYSAUX *** C:\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSAUX.DBF
    3 25 UNDOTBS1 *** C:\ORACLEXE\APP\ORACLE\ORADATA\XE\UNDOTBS1.DBF
    4 100 USERS *** C:\ORACLEXE\APP\ORACLE\ORADATA\XE\USERS.DBF
    List of Temporary Files
    =======================
    File Size(MB) Tablespace Maxsize(MB) Tempfile Name
    1 20 TEMP 32767 C:\ORACLEXE\APP\ORACLE\ORADATA\XE\TEMP.DBF
    RMAN>
    Recovery Manager complete.
    It's not looking elegant but it's working.
    Is there a other way?
    Best regards.

  • (10gR2)Full UNDO tablespace

    (10gR2)Full UNDO tablespace
    ============================
    PURPOSE
    10gR2 에서 UNDO tablespace 을 NO AUTOEXTEND로 생성한 경우 ,
    transaction 이 실행중인 database 에서는 UNDO tablespace 가
    FULL인 현상을 보게 됩니다.
    이는 10gR2 에서 max retention 을 보장하는 undo retention 의
    메카니즘이 소개되어 autoextend off 인 경우의 UNDO tablespace
    에서 나타나는 현상입니다.
    dba_undo_extents 에서 많은 UNEXPIRED undo segment 가 보이는 것이
    확인되고 UNDO tablespace 가 100% full 인것처럼 나타나는 현상을 볼 수
    있으며 그럼에도 불구하고 ORA-1555 나 ORA-30036 에러는 발생하지 않습니다.
    Explanation
    다음과 같이 많은 UNEXPIRED undo segment 가 조회됩니다.
    SQL> select count(status) from dba_undo_extents where status = 'UNEXPIRED';
    COUNT(STATUS)
    463
    SQL> select count(status) from dba_undo_extents where status = 'EXPIRED';
    COUNT(STATUS)
    20
    SQL> select count(status) from dba_undo_extents where status = 'ACTIVE';
    COUNT(STATUS)
    21
    dba_free_space 을 조회 결과 UNDO tablespace 의 free space 가 존재합니다.
    SUM(BYTES)/(1024*1024) TABLESPACE_NAME
    3 UNDOTBS1
    58.4375 SYSAUX
    3 USERS3
    4.3125 SYSTEM
    103.9375 USERS04
    Transaction 이 실행되면 UNDO tablespace 에 free space 가 조회되지 않는
    FULL 인것처럼 보입니다.
    SUM(BYTES)/(1024*1024) TABLESPACE_NAME
    58.25 SYSAUX
    98 USERS3
    4.3125 SYSTEM
    87.9375 USERS04
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    다음은 AUM 에서의 Undo Block 할당 알고리즘은 다음과 같습니다.
    1. current extent 에 free block 이 있으면 다음 free block 이
    할당됩니다.
    2. 그러나, free block 이 없으면, next extent 가 expired 되었다면 next extent 을
    warp 한후 그 next extent 의 처음 block 을 return 합니다.
    3. 만약 next extent 가 expired 되지 않았다면 UNDO tablespace 로부터 먼저
    space 을 찾습니다. 이때 free extent 가 존재한다면 이를 transaction table 에
    할당하고 해당 next extent 의 첫번째 block 을 return 합니다.
    4. 만약 UNDO tablespace 에 free extent 가 없다면 offline 된 transaction table
    에서 steal 합니다.
    offline 된 transaction table 에서 extent 을 deallocate 한후 이를
    current transaction table 에 add한후 그 add 한 extent 의 첫번째 free block 을
    return 합니다.
    5. offline 된 transaction table 에서 찾을수 없으면 , online 되어 있는
    transaction table 에서 steal 합니다. offline 된 transaction table 에서 extent 을
    deallocate 한후 이를 current transaction table 에 add한후 , 그 add 한 extent 의
    첫번째 free block 을 return 합니다.
    6. 1번~5번 까지 하여도 free block 을 얻지 못하면 이제 UNDO tablespace 의 file 을
    extend 합니다.
    file 이 extend 된다면 이후 current transaction table 에 extent 을 add 한후 ,
    그 extent 의 첫번째 free block 을 return 합니다.
    7. 6번 에서 UNDO tablespace 의 file 을 extend 하지 못했다면 , 자기의 transaction table
    에서 unexpired 된 extent 을 재사용합니다. 그런데 이때 모든 extent 가 busy 하다면
    즉 모두 uncommitted 된 정보라면 8번으로 갑니다. 아니라면 wrap 하여 unexpired 된
    extent 을 사용합니다.
    8. offline 된 transaction table 에서 unexpired 된 extent 을 steal 합니다. 이것이
    실패한다면 online 된 transaction table 에서 unexpired 된 extent 을 steal 합니다.
    9. 8 번까지 수행하고도 free block 을 얻지 못하면 이때서야 오라클에서는
    "ORA-30036 unable to extend segment by %s in undo tablespace '%s' " 에러를
    뿌리며 실패합니다.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    fixed size UNDO tablespace 라 함은 autoextend 가 off 라 datafile 을 자동으로
    더 이상 확장할 수 없음을 말합니다.
    autoextend 가 off 인 경우 10.2 부터는 max retention 이 36 시간 입니다.
    undo_retention 을 900 초(15 분) 으로 설정을 한다고 해도 10gR2 에서는
    max retention 이 36 시간이라 이에 해당하는 undo extent 을 UNEXPIRED 으로 만듭니다.
    그러나 이것이 가용한 undo extent 가 없다는 것이 아니고 , transaction 이 실행되게 되면
    UNEXPIRED undo segment 을 재사용하게 됩니다.
    References
    < Note 413732.1 - Full UNDO Tablespace In 10gR2 >

    A undo tablespace almost full is not necessarily a problem with Oracle 10g ... unless you have some ORA-XXXX errors in the database instance alert.log or in client programs connected to the instance. Is this the case ?
    You should also have a look to V$UNDOSTAT which stores undo statistics for the last 7 days.
    This view has also 2 interesting columns about possible errors related to undo space:
    SOLDERRCNT      NUMBER      Identifies the number of times the error ORA-01555 occurred. You can use this statistic to decide whether or not the UNDO_RETENTION initialization parameter is set properly given the size of the undo tablespace. Increasing the value of UNDO_RETENTION can reduce the occurrence of this error.
    NOSPACEERRCNT      NUMBER      Identifies the number of times space was requested in the undo tablespace and there was no free space available. That is, all of the space in the undo tablespace was in use by active transactions. The corrective action is to add more space to the undo tablespace.

  • 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

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

  • 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

  • Undo Tablespace Consumption

    Hi,,
    How to find the utilization of undo tablespace during a period of time and whihc session is consuming how much undo tablse space?
    Thankx..

    Search the documentation for v$transaction, it has columns showing the undo consumption of the transactions.
    SYS@10G>r
      1  select s.sid,t.used_ublk
      2  from v$session s,v$transaction t
      3  where s.taddr=t.addr
      4* order by t.used_ublk desc
           SID  USED_UBLK
           154         21

Maybe you are looking for