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
Similar Messages
-
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,
SSHmm 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. -
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!!
ColinSQL> 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 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. -
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,
TimYes 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? -
Undo tablespace currupt and no clean backup
Hello,
We are facing critical problem with database. We have not any clean backup and database in no archive log mode. Suddenly database is shutdown and when we are trying to open database it is giving error:-
ORA-01172: recovery of thread 1 stuck at block 350230 of file 3
ORA-01151: use media recovery to recover block, restore backup if needed
File 3 is Undo file.
Is there any way to open database?
Thanks in advance and please reply us ASAP.1) First, follow Howardjr recomendations and allways do a backup first.
2) Open a SR with Metalink to help with your problem
3) If you want to try something here are some options, but never skip the point 1 previously explained.
Well, you have two possible scenarios, one supported other unsupported.
This is an inconsistency issue..
Solution
============
*1]Supported Solution:*
Restore-Incomplete recovery the DB from backup or rebuild the DB using an export dump.
*2]Internal (Not-supported) Solution:*
Update undo$ to change the status$ = 1 (undo segment is dropped) for the corrupted undo segment.
Caution:
This is NOT a supported solution. Therefore ensure that a full database cold backup is taken bbefore doing this data-dictionary patching.
Steps to do the patching:
1) First ensure that a full database backup is taken.
2) Modify/add the following parameters in initSID.ora:
undo_management=manual
job_queue_processes =0
aq_tm_processes=0
systemtrig_enabled=false
3) Shutdown
4) Startup restrict pfile
5) set transaction use rollback segment system;
if set transaction above fails, then not to proceed further.
6) Update undo$ to change the status$ = 1 (undo segment is dropped) for
the corrupt undo segment.
update undo$ set status$ = 1
where us# = <'undo segment id'>
and ts#=<'tablespace id'>
and file#=<'file id'>
and block# = <'block id'>
and status$=2;
or
update undo$ set status$ = 1
where name = <'corrupt undo segment name'>
and status$=2;
This will update only 1 row. Rollback the update if more than 1 row is updated.
7) Commit;
8) Shutdown abort
9) Set back in init.ora parameters modified in Step 2.
Startup restrict
10) Drop the corrupt undo tablespace using command:
drop tablespace <corrupt undo tablespace name> including contents;
11) Create new undo tablespace.
In initSID.ora, set undo_management=auto, undo_tablespace=<'new undo tablespace name'>
Restart the instance.
12) Take a backup.
*Parameter offlinerollback_segments is not useful:*
Trying to drop the corrupt undo segment or the undo tablespace by setting parameters undo management=manual and offline_rollback_segments in initSID.ora will fails with error: ORA-00600 [ktssdrp1].
To see the information about the corrupt block use this query:
select us#, name, ts#, file#, block#,status$ from undo$
where (ts#, file#, block#) not in
(select ts#, file#, block# from seg$ where type# in (1,10)) and status$ > 1;I had the same problem some time ago, and the unsupported solution works great, but never try it without a full backup first.
Cheers,
Francisco Munoz Alvarez
http://oraclenz.wordpress.com
Edited by: F.Munoz Alvarez on Nov 30, 2012 11:03 AM -
Create undo tablespace while at mount state, possible?
Oracle 10g (10.2.0.1.0), on RedHat 4 (both 64 bit)
My test db’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’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 -
Hello Friends
I am confuse about a snario, please clear it:
What if we loss undo tablespace(data files), and all files remain safe(database in archive log 9i) and the tablespace have some active transactions at the time of failure. My question is that how oracle will recover ? and where the undo data for uncommited transaction will come from at the time of recovery.
Sunil KumarYou can create new undo tablespace , though, is that there cannot be any active transactions in the Undo segments of the tablespace when it is time to actually drop it. In the case of data file corruption, uncommitted transactions in the database that have data in Undo segments can be extremely troublesome because the existence of any uncommitted transactions will lock the Undo segments holding the data so that they cannot be dropped. This will be evidenced by an "ORA-01548" error if this is attempted. This error, in turn, prevents the drop and recreation of the Undo tablespace, and thus prevents the successful recovery of the database.
To overcome this problem, the transaction tables of the Undo segments can be traced to provide details on transactions that Oracle is trying to recover via rollback and these traces will also identify the objects that Oracle is trying to apply the undo to. Oracle Doc ID: 94114.1 may be referenced to set up a trace on the database startup so that the actual transactions that are locking the Undo segments can be identified and dropped. Dropping objects that contain uncommitted transactions that are holding locks on Undo segments does entail data loss, and the amount of loss depends on how much uncommitted data was in the Undo segments at the point of failure.
Hope this hepls... -
i have oracle 9i release 2 on unix box. The database is up but the undo tablespace got corrupted which i can see using v$recover_file view. End users have begin performing DML activities but at the midst of the transaction undo got corrupted . I have a backup of undo .
what should i do shall i shutdown and recover at the mount mode or recover the undo tablespace online??
please help me
its very urgentYou don't need to go for offline recovery.Do you mind elaborating that.
Question, let us say undo is corrupted, can we do a online recovery?
My reserach says
rman>restore datafile '/u02/undotbs01.dbf';--will complain about enqueue.
Also, You cannot take a undo tablespace offline.
You cannot drop a undo tablespace while it is in use.
My thoughts :- Take the database to mount state. Restore/recover. -
Undo Tablespace ..Is it the most important part of recovery
I just got a doubt
Redologs files are filles with COMMITED AND UNCOMMTTED transactions and archived assume archive log
ORacle uses undo tablespace to rollback the uncommited transactions
What happens if we loose undo tablespace?
sunday i took full backup...
after eactly one menoth i take another full backup meant time somewhere in the middle of the month i database crashes and also undo tablespace lost
how ill oracle recover in this scenario
Message was edited by:
Maran ViswarayarIn your sceniario, you have a Big problem here. Without a proper backup of your undo tablespace, you are going to suffer data loss if there're active undo segments.
Check Metalink Doc ID: Note:28812.1
Rollback Segment Needs Recovery
You need to drop all objects to release active undo segments.
There's a work around floating around like list all corrupted rollback segment in undocumented initial parameter
*._corrupt_rollback_segments=”_SYSSMU29$” I won't recommended this method , because it didn't fix the problem. It validated uncommited data. -
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 -
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
KedarUndo 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 -
While dropping the old undo tablespace we get an error
Hello friends ,
i Cannot drop old undo tablespace. While dropping the old undo tablespace we get an error
ERROR at line 1:
ORA-01548: active rollback segment '_SYSSMU77$' found, terminate dropping
tablespace
SQL> select tablespace_name, status, segment_name from dba_rollback_segs where status != 'OFFLINE';
TABLESPACE_NAME STATUS SEGMENT_NAME
SYSTEM ONLINE SYSTEM
APPS_UNDO NEEDS RECOVERY _SYSSMU77$
Please help
Thanks
Edited by: Vicky C on Dec 23, 2012 9:23 AMHi peter
We not using rman backup only cold backup.. i tried using cold backup in ramn block media recovery but that recovery needs archive log
RMAN> BLOCKRECOVER DATAFILE 158 BLOCK 48829;
Starting blockrecover at 18-DEC-12
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=437 devtype=DISK
channel ORA_DISK_1: restoring block(s) from datafile copy /var/undo/undo02.dbf
starting media recovery
media recovery failed
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of blockrecover command at 12/18/2012 16:45:11
ORA-00604: error occurred at recursive SQL level 1
ORA-01422: exact fetch returns more than requested number of rows
ORA-00279: change 5975281035000 generated at 12/08/2012 06:00:58 needed for thread 1
ORA-00289: suggestion : /prod/archlogs/1_465484_683651989.dbf
ORA-00280: change 5975281035000 for thread 1 is in sequence #465484
ORA-00278: log file '/prod/archlogs/1_465484_683651989.dbf' no longer needed for this re covery
we did not have block media recovery needed archivelog
Regards
Vignesh C -
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
Maybe you are looking for
-
File not found error when opening .JPG files in Photoshop CC
uninstalled and reinstalled photoshop CC and cannot resolve this issue. any time i open a .jpg file in photoshop, I get a "Could not complete your request because the file was not found." the file is obviously there, so i'm assuming its missing some
-
Purchase order type in sales documents
Hi All, I have come across with a peculiar requirement . Basically we want to have a source from where we have got the order as the order may be from different environments. Example: EDI Order, Web order, Manual Order. So I have decided to use the f
-
Why does my indesign say trial expired when i just paid a monthly fee
I paid a monthly fee for Indesign and it still says trial expired how do I update this to login and use my program
-
Payments from customers all show the same name
I sell a number of products daily and the FROM part all say the Paypal payments are from the same person. The name is from one of my customers. How do I stop this from reoccuring. I don't want to delete all my emails. Any tips would help. Thank you.
-
SAP Upgrade from ECC 5.0 to ECC 6
Hello All, We are planning for an upgrade from ECC 5 to ECC 6. As some obsolete statements like "Use of header line" is no more supported in ECC 6, do we need to manually change in all custom programs and FMs? Or is there available a tool to do so? o