7 x 24 在线支持!
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"