Email: service@parnassusdata.com 7 x 24 online support!

    You are here

    • You are here:
    • Home > Blogs > PDSERVICE's blog > Oracle Error ORA-376 encountered while recovering transaction (A, B) on object YYYY.

Oracle Error ORA-376 encountered while recovering transaction (A, B) on object YYYY.

Oracle Error ORA-376 encountered while recovering transaction (A, B) on object YYYY.

oerr ora 376
00376, 00000, "file %s cannot be read at this time"
// *Cause:  attempting to read from a file that is not readable. Most likely
//          the file is offline.
// *Action: Check the state of the file. Bring it online

(A, B) shows the rollback segment id and slot number (USN , SLOT)
YYYY shows the object id (NOT the data object id)

If a file is being reported as offline (ORA-376) then there are
2 main options:
a. Restore and recover the offline file and bring it online.
This is only possible if the database is in ARCHIVELOG mode.
eg: Restore it at OS level from a good backup,
RECOVER DATAFILE 'name_of_file';
ALTER DATABASE DATAFILE 'name_of_file' ONLINE;
The rollback can now continue.
Go back to "Recovering Rollback Segments"
b. If the file cannot be restored then it is possible to continue by
dropping object YYYY.
eg: Oracle8 and Oracle7:
SELECT object_type, owner, object_name
FROM DBA_OBJECTS
WHERE object_id= 
;
If you drop object YYYY SMON will notice that this object no longer
exists and so can skip any undo relating to that object.
NOTE-A: If you drop the object it is lost.
If the object spans several files and only one of them is lost
you may want to salvage data from the object (if possible)
before dropping it.
NOTE-B: If the undo touches other objects in the same offline datafile
then the rollback stops at the next inaccessible block.


~~~~~~~~~~~~~~
Error XXXX encountered while recovering transaction (A, B).
~~~~~~~~~~~~~~
Note this error has no "on object ...." clause in the error.
This is reported to the alert log when error XXXX is encountered on
a rollback segment block.
XXXX is the ORA-XXXX error encountered
(A, B) shows the rollback segment id and slot number (USN , SLOT) of the
transaction being recovered.
As we are recovering the transaction this is a block that we do need to
see:
If the error is 1578 go to "ORA-1578 on a REQUIRED Rollback Segment Block"
If the error is 600 then one can assume there is a corruption on a
required rollback segment block. Identifying the exact file, block
and problem requires you to look at the trace for the ORA-600 - see any
reference note relating to the exact ORA-600 you are seeing and then
go to "ORA-1578 on a REQUIRED Rollback Segment Block".
If the error is 376 then a file containing part of the rollback segment
is offline. Online the named file - there should be an addition error
similar to this in the alert log:
ORA-00376: file 23 cannot be read at this time
ORA-01110: data file 8: '/tmp/RPrbs2.dbf'
If the named file cannot be restored / recovered go to "Last Options"