Undo Tablespace Datafile is corrupted

Here's my case:
- our Oracle 9i R2 database is running in NOARCHIVE mode in Windows 2000 plateform.
- the Undo Tablespace datafile corrupted in the filesystem level (it gives "cyclic redundancy check" error when trying to copy or read from the file). Therefore database cannot startup.
- There is no backup files.
- I tried to create an Undo Tablespace to replace the existing one in the MOUNT state. That was not of course possible.
- I tried to use ALTER DATABASE CREATE DATAFILE '' AS '' statement, but it couldn't work because the original file is corrupted.
How can I solve the problem and make the database startup?
Thanks in advance.

This is a very bad situation, here's a statement from an Oracle note:
If the rollback segment datafile is physically missing, has been offlined
dropped, or the rollback segment header itself is corrupt, there is no way to
dump the transaction table to check for active transactions. So the only thing
to do is get the database open, export and rebuild. Log an iTar to engage support
to help with this process.
If you cannot get the database open, there is no other alternative than
restoring from a backup. ...
So you should contact Oracle support.

Similar Messages

  • Move an undo tablespace datafile while online

    Having a spirited debate at work today. Is it possible, or has anyone successfully moved an undo tablespace datafile while keeping the database online? (Hypothetically someone created it in the wrong directory)
    My logic:
    Create a new undo tablespace B
    Switch undo tablespace from A to B
    Take tablespace A offline
    Once A goes from 'PENDING OFFLINE' to 'OFFLINE' copy the file to new location
    Alter database rename file location
    Switch undo tablespace from B to A
    Drop tablespace B
    Any comments?

    Yes I do understood that, but you don't have to "move" the datafile.
    The procedure I proposed is just to create a new undo tablespace, drop the former and forget about it.
    You can't "move" the file stricto sensu while the database is online, but nothing prevents you from switching from one tablespace to another. Once it's done, everything's fine. And if you're on 10G (r2?) you might even rename tablespace "B" to tablespace "A"!
    Yoann.

  • Undo tablespace/datafiles

    Oracle 9i
    In production, we have undo data files:
    SUM(MAXBYTES)     SUM(USER_BYTES)
    33554432000     12823953408
    this table has 90 million records
    I estimated table size:
    num_rows*avg_row_len=12875211284
    We need to insert 55 million records to new table. When insert, I just want to run insert into ...select from statement once, only commit one time.
    do you think undo tablespace is big enough to hold 55 million records based on the above undo datafiles?
    Thanks
    S.

    Also append doens't work with select it only works with INSERT, and you already created table in nologging mode. if you are on 10 and your extent management is set to auto, then use this.
    create table st.order_temp
    tablespace USER_DATA
    nologging
    nocache
    noparallel
    as select
    all columns
    from st.order_temp
    where trunc(insert_date)>=add_months(trunc(sysdate, 'MONTH'), -12);
    Edited by: OrionNet on Dec 9, 2008 2:19 AM

  • Dropping Undo Tablespace 9i

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

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

  • Undo Tablespace Retention gurantee

    Hi,
    From what I have read about undo Tablespaces ,If Undo Management is AUTO,and Retention is se to say 15 min and retention gurantee is disabled ,Unexpired transactions can be overwritten by the database,If such is the case then undo tablespace should never get filled up.
    But I have observed despite these settings,Undo tablespace filling issue still occurs.
    Please help me understand this.
    Thanks.

    Either
    1. Your undo tablespace datafile is small (inadequate for the volume of transactions)
    OR
    2. Oracle is using autotuneundo which causes it to retain Undo for longer than undo_retention period and use the undo tablespace datafile to the fullest.
    See Oracle Support notes
    "Oracle 10G new feature - Automatic Undo Retention Tuning [ID 311615.1] "
    "Bug 5387030 - Automatic tuning of undo_retention causes unusual extra space allocation [ID 5387030.8] "
    "Bug 5387030"
    Hemant K Chitale

  • Undo tablespace growing without reusing space

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

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

  • Undo tablespace corruption will terminate DB operation

    Hi All,
    Just for the concept, if undotablespace datafile got corrupted due to any reasion, will it force to terminate the DB operation.
    O know this will happen with control file and SYTEM datafile only.
    Please confirm.
    Regards,
    SS

    Hmm what to check? It says the same, it is not mandatory that instance would surely get shut down with the loss of undo tablespace. But you MUST do the recovery of it when the database is closed. I guess that's what that doc is also saying.
    Update:
    See below where I would show the same thing happening. We would start from the undo tablespace getting deleted and would check the alert log for any message. Also we would check the status of teh database after the drop,
    Session 1
    SQL*Plus: Release 10.2.0.1.0 - Production on Thu Aug 6 10:43:35 2009
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    Connected to an idle instance.
    SQL> startup
    ORACLE instance started.
    Total System Global Area  167772160 bytes
    Fixed Size                  1218316 bytes
    Variable Size              79694068 bytes
    Database Buffers           83886080 bytes
    Redo Buffers                2973696 bytes
    Database mounted.
    Database opened.
    SQL> shut immediate
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> startup mount
    ORACLE instance started.
    Total System Global Area  167772160 bytes
    Fixed Size                  1218316 bytes
    Variable Size              79694068 bytes
    Database Buffers           83886080 bytes
    Redo Buffers                2973696 bytes
    Database mounted.
    SQL> alter database archivelog;
    Database altered.
    SQL> alter database open;
    Database altered.
    SQL> select name from V$datafile;
    NAME
    --------------------------------------------------------------------------------/u01/app/oracle/oradata/orcl/system01.dbf
    /u01/app/oracle/oradata/orcl/undotbs01.dbf
    /u01/app/oracle/oradata/orcl/sysaux01.dbf
    /u01/app/oracle/oradata/orcl/users01.dbf
    SQL> !rm /u01/app/oracle/oradata/orcl/undotbs01.dbf
    SQL> select status from V$instance;
    STATUS
    ------------  <-- The database is open
    OPEN
    #At this time, in the alert log there was no message.
    #Let's try some ddl/dmls.
    SQL> create table t( a number);
    Table created.
    SQL> insert into t values(1);
    1 row created.
    SQL> commit;
    Commit complete.
    SQL> delete t;
    1 row deleted.
    #No problem so far. Let's issue a checkpoint, this would force oracle to check the file and its status.
    SQL> alter system checkpoint;
    System altered.
    SQL>
    Session-2(Alert log's tail)
    Output snipped
    ORA-01110: data file 2: '/u01/app/oracle/oradata/orcl/undotbs01.dbf'
    Thu Aug  6 11:11:19 2009
    Errors in file /u01/app/oracle/admin/orcl/bdump/orcl_pmon_4402.trc:
    ORA-00376: file 2 cannot be read at this time
    ORA-01110: data file 2: '/u01/app/oracle/oradata/orcl/undotbs01.dbf'
    Thu Aug  6 11:11:19 2009
    Errors in file /u01/app/oracle/admin/orcl/bdump/orcl_pmon_4402.trc:
    ORA-00376: file 2 cannot be read at this time
    ORA-01110: data file 2: '/u01/app/oracle/oradata/orcl/undotbs01.dbf'
    Thu Aug  6 11:11:19 2009
    Errors in file /u01/app/oracle/admin/orcl/bdump/orcl_pmon_4402.trc:
    ORA-00376: file 2 cannot be read at this time
    ORA-01110: data file 2: '/u01/app/oracle/oradata/orcl/undotbs01.dbf'
    #Let's check the status again,
    SQL> select stauts from V$isntance;
    select stauts from V$isntance
    ERROR at line 1:
    ORA-00603: ORACLE server session terminated by fatal error
    Its crashed now as db couldn't find the undo tablespace.
    HTH
    Aman....
    Edited by: Aman.... on Aug 6, 2009 11:28 AM added demo.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • How the storage will be allocated on Undo tablespace made of datafiles?

    I have a UNDO tablespace with two data files. Wherein one data file with Auto Extend as Yes and other as No.
    In the case of multiple datafiles in UNDO tablespace,
    1. Will the storage be allocated of same size on each datafile ?
    2. What will be the case when the datafile with Auto Extent as NO reached it's max size?
    3. Will the storage be allocated proportion to the datafile size in each file?

    But when I use the following query, its not getting fired. Its taking "INDEX FULL SCAN"I would have thought that the later part of the above statement contradicts with the earlier part of the statement.
    its not getting firedcontradicts this statement:
    Its taking "INDEX FULL SCAN"Since the birth_dt is not the leading column of your index ...
    Is it doing a INDEX FULL SCAN on the GPM_PERSONPROFILEDEMO_DOB2_IDX index?
    if you have queries that involve profile_update_dt + birth_dt and some others that involve only birth_dt, then why not have the index in birth_dt + profile_update_dt instead?

  • Need to drop datafile from my undo tablespace

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

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

  • UNDO tablespace corrupted

    Hi!
    I have been having problems for the past couple days with restarting my database. For some reason when I shutdown, once I start it up again the undo tablespaces is offline and needs to be recovered. When the application tries to connect to the database it gives a "ora-01552 : cannot use system rollback segment for non-system tablespace." I do a recover on that tablespace and bring it back up, and it works fine... until the next restart.. Would anyone have an idea on what's the problem, and what I can do to fix it once and for all?
    Thanks
    Yazil Santoyo

    did you try metalink, there are lot of options / suggestions for your particular error.
    Is your database in Auto undo mode or manual undo?
    Thanks
    Gopal

  • Undo tablespace with active transaction/segment corrupted

    How to recover if undo tablespace with active transaction/segment corrupted

    Try RMAN blockrecover or restore the tablespace from latest backup and recover it.

  • Cannot drop undo tablespace with Active extents but no active sessions

    Hi all,
    I am running on 10gr2 oracle database in a Linux 32 bit environment.
    I have a corrupted undo datafile. I've been able to recover the datafile but still the alert logs is still showing that it is corrupted.
    Now what I'm trying to do is to drop the old undo tablespace like the one discussed here Change undo tablespace in Oracle - Switch Oracle's Undo tablespace.
    My problem is I have an Active extent but no active session corresponding to it:
    SYS@ccasdb AS SYSDBA > SELECT a.name,b.status
    FROM   v$rollname a,v$rollstat b
    WHERE  a.usn = b.usn
    AND    a.name IN (
                      SELECT segment_name
                      FROM dba_segments
                      WHERE tablespace_name = 'UNDOTBS1'
                     );  2    3    4    5    6    7    8
    NAME                           STATUS
    _SYSSMU18$                     PENDING OFFLINE
    SYS@ccasdb AS SYSDBA > SELECT a.name,b.status , d.username , d.sid , d.serial#
      2  FROM   v$rollname a,v$rollstat b, v$transaction c , v$session d
      3  WHERE  a.usn = b.usn
      4  AND    a.usn = c.xidusn
      5  AND    c.ses_addr = d.saddr
      6  AND    a.name IN (
      7               SELECT segment_name
      8               FROM dba_segments
      9               WHERE tablespace_name = 'UNDOTBS1'
    10              );
    no rows selected
    but still cannot drop the undotablespace.
    SYS@ccasdb AS SYSDBA > drop tablespace UNDOTBS1 including contents and datafiles;
    drop tablespace UNDOTBS1 including contents and datafiles
    ERROR at line 1:
    ORA-30013: undo tablespace 'UNDOTBS1' is currently in use
    Regards,
    Tim

    Yes i was able to recover the datafile but the alert_log kept on prompting that it is still corrupted. The datafile's status is online.
    I want to kill the session/s contributing to the PENDING OFFLINE status of the rollback segment so I can already drop the undotablespace and so
    that the alert log will stop prompting for that corrupted datafile in that UNDOTABLESPACE.
    Can i Just alter the tablespace's datafiles to offline drop then just drop it. Then I drop the tablespace?

  • Create undo tablespace while at mount state, possible?

    Oracle 10g (10.2.0.1.0), on RedHat 4 (both 64 bit)
    My test db&rsquo;s undo tablespace is corrupt (no RMAN or user backups).
    DB fails to open, fails during "Doing block recovery for file 2 block 209910"Is there a way of creating undo tablespace while at mount state?
    I am pretty confident it&rsquo;s not possible, also searched the net and found no fix, I thought I will ask.
    I get error:
    CREATE UNDO TABLESPACE UNDOTBS1_new DATAFILE  '/u01/oracle/oradata/TEST_DB1/undotbs2_01.dbf' SIZE 512M
    ERROR at line 1:
    ORA-01109: database not openp{code}As a last option, I will open the db with *'reset logs'*, wondering is any thing else I can try to fix the issue.
    Thanks for any input.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    your problem is not to create un UNDO, your problem is that your UNDO is corrupted ! ;)
    You must recover undo because it may contains needed data.
    As there is not backup, you may try to set undo to manual, and then open the db and recreate the undo
    but this may fail and you may have to allow undo corruption in initialization (_corrupted_rollback_segments), but this is an unsupported operation (hidden parameter)
    Could you contact support ?
    is your db a production one ?
    Edited by: Leo Anderson on 1 sept. 2008 15:25

  • How to protect UNDO TABLESPACE in 9iR2

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

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

  • Undo tablespace growing fast

    Hello All
    We are having issues with undo tablespace growing... the oracle version is 10.2.0.1.0
    the table is holding around 400000000 records and this table is also partitioned by range
    any reason for this undo tablespace growing by at an high rate
    regards
    Kedar

    Undo tablespaces are special tablespaces used solely for storing undo information. You cannot create any other segment types (for example, tables or indexes) in undo tablespaces. Each database contains zero or more undo tablespaces. In automatic undo management mode, each Oracle instance is assigned one (and only one) undo tablespace. Undo data is managed within an undo tablespace using undo segments that are automatically created and maintained by Oracle.
    Every Oracle Database must have a method of maintaining information that is used to roll back, or undo, changes to the database. Such information consists of records of the actions of transactions, primarily before they are committed. These records are collectively referred to as undo.
    Undo records are used to:
    Roll back transactions when a ROLLBACK statement is issued
    Recover the database
    Provide read consistency
    Analyze data as of an earlier point in time by using Oracle Flashback Query
    Recover from logical corruptions using Oracle Flashback features
    When a ROLLBACK statement is issued, undo records are used to undo changes that were made to the database by the uncommitted transaction. During database recovery, undo records are used to undo any uncommitted changes applied from the redo log to the datafiles. Undo records provide read consistency by maintaining the before image of the data for users who are accessing the data at the same time that another user is changing it.
    You confuse TEMP with UNDO tablespace.
    Best Regards,
    Francisco Munoz Alvarez
    www.oraclenz.com

Maybe you are looking for

  • Repeating Group header on each page

    Hello Everybody, I have two groups in my report. For my first group value, i have given report - group expert - options and checked "Repeat group header on each page" assuming that my first group values will appear on each page. But it is not doing s

  • Need help, Trouble in uploading records using sql loader in Forms 6i

    Hi, I am trying to develop a screen for uploading records to a table by using a ctl file, batch file and sql loader. Env: Forms 6i, Oracle 8 Table to be updated is: shy_upload_table My TSN entry looks similar to this, TEST_AXA.CNB.COM = (DESCRIPTION

  • FM or Way to validate Date format. The date is from TEXT File

    Dear All, I need to validate a date field whether it is in proper format. The field is coming from TEXT file to Internal table by using FM GUI_UPLOAD. Can any one give me the FM name or guide me how to do that? Definitely points will be given for cor

  • Log to see a tcode used in last 15 days

    hi pros i need to see a how many times a tcode used in last 1 month. is there any report? i used stat but didnt give anything. please reply!

  • [SOLVED] Syslinux. Installing bootloader.

    Hello, I have an Acer Aspire M3-581TG, which comes with 20Gb mSSD and 500Gb HDD. For some reason mSSD can't be bootable, so if I try to install any operating system with automatic installation on this drive, it creates MBR boot sector on my HDD. I wo