7 x 24 在线支持!
Oracle Error ORA-600 encountered while recovering transaction (A, B) on object YYYY
oerr ora 600
00600, 00000, "internal error code, arguments: [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s]"
// *Cause: This is the generic internal error number for Oracle program
// exceptions. It indicates that a process has encountered a low-level,
// unexpected condition. The first argument is the internal message
// number. This argument and the database version number are critical in
// identifying the root cause and the potential impact to your system.
//
// *Action: Visit My Oracle Support to access the ORA-00600 Lookup tool
// (reference Note 600.1) for more information regarding the specific
// ORA-00600 error encountered.
//
// An Incident has been created for this error in the Automatic
// Diagnostic Repository (ADR). When logging a service request, use
// the Incident Packaging Service (IPS) from the Support Workbench
// or the ADR Command Interpreter (ADRCI) to automatically package the
// relevant trace information (reference My Oracle Support Note 411.1).
//
// The following information should also be gathered to help determine
// the root cause:
// - changes leading up to the error
// - events or unusual circumstances leading up to the error
// - operations attempted prior to the error
// - conditions of the operating system and databases at the time
// of the error
//
// Note: The cause of this message may manifest itself as different
// errors at different times. Be aware of the history of errors that
// occurred before this internal error.
(A, B) shows the rollback segment id and slot number (USN , SLOT)
YYYY shows the object id (NOT the data object id)
The fact that an object is listed in the error implies the ORA-600
is most likely related to the target block of the undo, and not the
undo block itself. If the ORA-600 is a block checking related
error then there is a strong chance that block level recovery will
re-try the operation and mark the block as corrupt thus resulting in
the transaction being recovered (as we skip over corrupt blocks as
described in "Discarding Undo in Note:105871.1"). If the block does
not get marked as corrupt then the ORA-600 will prevent the transaction
rollback from completing.
There are 2 main options:
a. Recover the file containing the block causing the ORA-600
b. Drop the object containing the block causing the ORA-600
The steps for these 2 options are described in "Error 376 encountered ..."
and so are not repeated here .
Identifying the file requires you to look at the trace for the ORA-600
and hope that it indicates the problem block. How to do this depends
on the ORA-600 - see any reference note relating to the exact ORA-600
you are seeing.
The object is known from the YYYY in the error message.