Oracle Database Error Solutions – Easy & Practical Guides

Welcome to a dedicated platform for solving common Oracle Database errors like ORA-01194, ORA-01555, ORA-01017, ORA-12154 and more.

Learn step-by-step solutions, real-world troubleshooting, and best practices to handle Oracle issues efficiently.

View All Oracle Error Solutions

ORA-10564: Tablespace UNDOTBS1 – Complete Oracle Undo Corruption Recovery Guide

ORA-10564: Tablespace UNDOTBS1 – Complete Oracle Undo Corruption Recovery Guide

The ORA-10564 error is a serious Oracle Database corruption and recovery issue commonly associated with corrupted undo blocks, damaged undo tablespaces, or media recovery failures.

This error frequently appears together with:

  • ORA-01110
  • ORA-10561
  • ORA-00600
  • ORA-01578
  • ORA-00376

In many production environments, ORA-10564 occurs when Oracle attempts to access corrupted undo segments during database startup, transaction recovery, RMAN recovery, or rollback operations.

Undo corruption is one of the most dangerous Oracle issues because undo data is essential for:

  • Transaction rollback
  • Read consistency
  • Crash recovery
  • Flashback operations
  • Instance recovery

In this complete Oracle DBA recovery guide, you will learn:

  • What ORA-10564 means
  • How undo corruption occurs
  • How to identify corrupted undo segments
  • How to recover damaged undo tablespaces
  • How to create a new UNDO tablespace
  • Step-by-step Oracle recovery methods
  • Best practices to prevent undo corruption

What is ORA-10564?

ORA-10564 indicates corruption in Oracle database blocks, commonly within the UNDO tablespace.

The error usually appears during:

  • Database startup
  • Media recovery
  • Transaction rollback
  • RMAN restore/recovery
  • SMON recovery operations

ORA-10564 error

Oracle detects that one or more blocks in the undo tablespace are inconsistent or corrupted.


Common Error Messages

ORA-10564: tablespace UNDOTBS1
ORA-01110: data file 3
ORA-10561: block type 'TRANSACTION MANAGED DATA BLOCK'

Quick Solution

Quick Fix: Create a new UNDO tablespace, switch the database to the new undo segment, and remove the corrupted undo tablespace if recovery is not possible.


What is Oracle UNDO Tablespace?

The UNDO tablespace stores undo records generated by transactions.

Oracle uses undo data for:

  • Rolling back transactions
  • Read consistency
  • Flashback queries
  • Transaction recovery
  • Database consistency

If undo data becomes corrupted, Oracle recovery operations may fail.


Common Causes of ORA-10564

  • Undo tablespace corruption
  • Storage or disk failure
  • Improper database shutdown
  • I/O subsystem corruption
  • Failed recovery operations
  • Oracle internal software bugs
  • Filesystem corruption
  • Hardware issues
  • Unexpected server crashes

Real-World Scenario

In your original production scenario, the Oracle database failed during startup and reported:

ORA-10564: tablespace UNDOTBS1
ORA-01110: data file

Further investigation revealed corruption inside the undo tablespace datafile.

The database could not complete recovery because Oracle attempted to access damaged undo blocks during rollback processing.

The issue was resolved by creating a new UNDO tablespace and switching Oracle to use the new undo segment.


How Undo Corruption Happens

Undo corruption commonly occurs after:

  • Power failures
  • Storage failures
  • Unexpected instance crashes
  • Corrupted disks
  • Failed media recovery

Since undo blocks change frequently, they are highly sensitive to I/O issues and incomplete writes.


Step-by-Step ORA-10564 Troubleshooting

1. Check Oracle Alert Log

The first troubleshooting step is reviewing the Oracle alert log.

Look for:

  • ORA-10564
  • ORA-01578
  • ORA-00600
  • Undo corruption messages
  • Block corruption details

Alert log location:

$ORACLE_BASE/diag/rdbms

2. Identify Corrupted Datafile

Check the affected datafile using the error message.

ORA-01110: data file 3

Identify the file name:

SQL> SELECT file#, name FROM v$datafile;

3. Start Database in Mount Mode

STARTUP MOUNT;

This allows limited recovery operations.


4. Create New Undo Tablespace

Create a replacement UNDO tablespace.

SQL> CREATE UNDO TABLESPACE UNDOTBS2
DATAFILE '/u01/oradata/UNDOTBS02.dbf'
SIZE 500M AUTOEXTEND ON;

5. Switch Database to New Undo Tablespace

SQL> ALTER SYSTEM SET undo_tablespace=UNDOTBS2;

This instructs Oracle to use the new undo segment.


6. Restart Database

SQL> SHUTDOWN IMMEDIATE;

SQL> STARTUP;

In many cases, the database opens successfully after switching undo tablespaces.


7. Drop Corrupted Undo Tablespace

After confirming stability:

SQL> DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS AND DATAFILES;

Important: Only drop the corrupted undo tablespace after ensuring the new undo segment is functioning correctly.


How to Check Block Corruption

SQL> SELECT * FROM v$database_block_corruption;

This query identifies corrupted database blocks.


Check Undo Segment Status

SQL> SELECT segment_name, status FROM dba_rollback_segs;

Oracle Recovery Commands

Recover Database

SQL> RECOVER DATABASE;

Open Database

SQL> ALTER DATABASE OPEN;

View Alert Log Using ADRCI

adrci> show alert -tail 100

ORA-10564 and SMON Recovery

The Oracle SMON background process frequently encounters ORA-10564 during instance recovery.

If SMON cannot process corrupted undo blocks, database startup may fail completely.

This is why undo corruption is often associated with:

  • ORA-00474
  • ORA-00600
  • ORA-01092

Undo Corruption vs Datafile Corruption

Issue Description
Undo Corruption Corruption inside undo segments or rollback data
Datafile Corruption Corruption in general Oracle data blocks

Best Practices to Prevent ORA-10564

  • Perform regular RMAN backups
  • Monitor Oracle alert logs daily
  • Use reliable storage systems
  • Monitor filesystem health
  • Validate backups regularly
  • Keep Oracle patches updated
  • Use UPS protection for servers
  • Monitor database corruption proactively

Common DBA Mistakes

  • Ignoring corruption warnings
  • Dropping undo tablespaces too early
  • Restarting production repeatedly without analysis
  • Ignoring storage hardware issues
  • Skipping RMAN validation procedures

Performance Impact of Undo Corruption

Undo corruption can severely affect:

  • Database startup
  • Transaction consistency
  • Rollback operations
  • Recovery performance
  • Flashback functionality

In severe cases, production databases may become completely unavailable.


Frequently Asked Questions (FAQ)

What causes ORA-10564?

ORA-10564 is commonly caused by corruption in the UNDO tablespace or rollback segments.

How do I fix ORA-10564?

Create a new undo tablespace, switch Oracle to the new undo segment, and remove the corrupted undo tablespace.

Can undo corruption prevent database startup?

Yes. Severe undo corruption can prevent Oracle instance recovery and startup.

How do I check Oracle corruption?

SELECT * FROM v$database_block_corruption;

Is ORA-10564 serious?

Yes. It is a critical Oracle recovery issue requiring immediate DBA attention.


Related Posts

👉 Check our complete guide: Oracle Error Codes Guide


Conclusion

The ORA-10564 error is a critical Oracle Database corruption issue commonly associated with undo tablespace failures, rollback segment corruption, and recovery inconsistencies.

Understanding how Oracle undo management works is essential for successful troubleshooting and recovery.

By following the recovery procedures explained in this guide, Oracle DBAs can safely recover from undo corruption and restore database availability.

Regular backup validation, proactive monitoring, and reliable storage infrastructure are essential for preventing serious Oracle corruption issues in production environments.

Your comments, especially which will help us improve the functionality, will be greatly appreciated. Do not forget to follow my Blog.

Web Application Services adoacorectl.sh failed


EBS R12 Web Application Services adoacorectl.sh failed

Applies to:
            Oracle Enterprise Linux – Version: 7
            Oracle EBS R12

Description:
            Oracle EBS R12 Application services cannot start successfully adoacorectl.sh going to failed. I have restarted all the services of application and database but the problem is same. I have also restarted the whole machine/server but still the same issue. I found in log file that all OC4J services (oacore, oafm, form) going to fail with timeout error.

Solution:
            After some research I found that need to clean out the lock files.
Following the steps to resolve the above issue:
1-      Stop all application services          
$INST_TOP/admin/scripts/adstpall.sh

2-      Remove any .lock files from following folders:
$INST_TOP/ora/10.1.3/j2ee/oacore/persistence/oacore_default_group_1
$INST_TOP/ora/10.1.3/j2ee/oafm/persistence/oafm_default_group_1
$INST_TOP/ora/10.1.3/j2ee/forms/persistence/forms_default_group_1

3-      Also remove the following files if exists:
$COMMON_TOP/cacheLock
$COMMON_TOP/_TldCache

4-      Now Start application services
$INST_TOP/admin/scripts/adstrtall.sh

                   All services going to start successfully.



Your comments, especially which will help us improve the functionality, will be greatly appreciatedJ


👉 Check our complete guide: Oracle Error Codes Guide

Contact / Feedback Form

Name

Email *

Message *